Tải bản đầy đủ (.ppt) (52 trang)

báo cáo 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 (307 KB, 52 trang )

HỆ ĐIỀU HÀNH
BỐ CỤC GỒM HAI PHẦN
PHẦN 1: HỆ ĐIỀU HÀNH CHUNG
Chương 1: Một số khái niệm cơ bản
Chương 2: Hệ thống tệp và cài đặt
Chương 3: Các thiết bị vào/ra
Chương 4: Hệ điều hành quản lý bộ nhớ
PHẦN 2: HỆ ĐIỀU HÀNH MS-DOS
Chương 1: Hệ điều hành MS-DOS quản lý hệ thống tệp
Chương 2: Khái niệm ngắt, xử lý ngắt, ví dụ về ngắt và lập trình ngắt
TÀI LIỆU THAM KHẢO:
[1] Andrew S. Tanenbaum, Modern Operating System, Printice-Hall Inter.,
Inc.,1992.
[2] Lê Ngọc Xuân, Hệ điều hành, Tủ sách Đại học Sư Phạm Vinh, 2000.
[3] Quách Tuấn Ngọc, Đỗ Tiến Dũng, Nguyễn Quang Khải, Ngôn ngữ lập trình
Assembly và máy vi this IBM-PC, T. 1, 2 (bản dịch), NXB Giáo Dục, 1995.
[4] Ngô Trung Việt, MS C Turbo C, MS-DOS, hướng dẫn khai thác và sử dụng,
Viện khoa học Tính toán và Điều khiển, Hà Nội, 1988.
Chương 1 Các khái niệm cơ bản của HĐH
1.1 Chức năng, vị trí của Hệ điều hành trong hệ thống
1. Chức năng
- Hệ điều hành là phần mềm hệ thống đặc biệt có khả năng tự động đưa hệ thống máy
tính vào trạng thái hoạt động. Nếu trên hệ thống máy tính không có Hệ điều hành thì
nó chỉ là các linh kiện điện và điện tử được kết nối với nhau theo một kiến trúc nào đó
mà không sử dụng được. Nhưng nếu trên hệ thống máy tính có một Hệ điều hành thì
nó trở thành hệ thống tính toán, xử lý và tổ chức lưu trữ thông tin (dữ liệu).
- Hệ điều hành cung cấp một tập lệnh với giao diện thuận lợi để người sử dụng khai
thác hệ thống máy tính có hiệu quả.
- Hệ điều hành quản lý toàn bộ tài nguyên của hệ thống (hệ thống tệp, các thiết bị vào
ra, các thành phần khác của hệ thống…).
2. Phân tầng hệ thống


Hệ thống máy tính có thể được phân thành 6 tầng như sau:
- Sơ đồ phân tầng hệ thống
- Tầng vật lý (tầng 0): Chứa các thiết bị vật lý bao gồm các vỉ mạch, chíp, nguồn
điện, mạch điện v v. Tầng này làm nhiệm vụ vận chuyển tín hiệu (dữ liệu) vào ra
hệ thống.
- Tầng các vi chương trình (tầng 01): Chứa các vi chương trình sơ khai điều khiển
trực tiếp các thành phần vật lý ở tầng 0 và tạo giao diện với tầng trên (tầng 2). Các
vi chương trình thường chứa trong ROM, thực chất đây là bộ dịch, nhận các lệnh
máy và thực hiện chúng tuần tự theo từng bước.
- Tầng ngôn ngữ máy (tầng 2): Ngôn ngữ máy thường có 50-300 lệnh máy, số
lệnh máy phụ thuộc vào các kiến trúc máy tính. Các lệnh máy chủ yếu dùng để di
Chuyển dữ liệu, thực hiện các phép toán số học, logic và so sánh giá trị.
Tầng ứng dụng (Applications)
Tầng các tiện ích (các bộ biên dịch (Compiler), các bộ soạn thảo (Editor), các bộ
thông dịch (Interpreter),…)
Tầng Hệ điều hành
Tầng ngôn ngữ máy
Tầng các vi chương trình
Tầng các thiết bị vật lý
Hình 1.1
-
Tầng Hệ điều hành (tầng 3): Chức năng của Hệ điều hành là che kín sự phức tạp
của tầng dưới, tổ chức thực hiện chương trình và cung cấp tập lệnh và giao diện để
người sử dụng khai thác hệ thống.
- Tầng các tiện ích (tầng 4): Tầng này chứa các tiện ích hỗ trợ người sử dụng khai
thác hệ thống có hiệu quả. Trên tầng này chứa các lệnh thông dịch, các bộ biên
dịch, các bộ thông dịch và lớp các chương trình ứng dụng độc lập, các chương trình
này không phải là một phần của hệ điều hành mặc dầu vậy chúng được các hẵng
máy tính sử dụng (như các tiện ích)
- Tầng các chương trình ứng dụng (tầng 5): Tầng này bao gồm các chương trình do

ngườI sử dụng viết để giải quyết các vấn đề cụ thể của mình, ví dụ như: xử lý số
liệu kế toán, thương mại, các tính toán kỹ thuật và khoa học, các trò chơi v v.
1.2 Các khái niệm của hệ điều hành
1. Tiến trình: Các tiến trình là nền cơ bản để thực hiện một chương trình. Một ứng
dụng thực hiện trên máy tính, thông thường cả hệ điều hành, được thiết lập bằng số
các tiến trình tuần tự (hay các tiến trình). Tiến trình thực chất là chương trình thực
hiện trong đó gồm các giá trị chương trình đếm, các thanh ghi, các biến. Có thể
quan niệm mỗi tiến trình có bộ vi xử lý (CPU) ảo của riêng mình. Tất nhiên trong
thực tế CPU chuyển đổi qua lại (switch) giữa các tiến trình và có thể xem rằng tập
các tiến trình thực hiện song song. Sự tiến lui, tiến tới của CPU giữa các chương
trình gọi là đa chương. Hệ điêuh hành quản lý các tiến trình như: khởi tạo mới, hủy
bỏ, dừng một tiến trình. Một tiến trình khi thực hiện có thể yêu cầu một tiến trình
khác (gọi là tiến trình con), đến lượt nó tiến trình con có thể lại yêu cầu một tiến
trình con khác v v, vì vậy tập các tiến trình có cấu trúc cây.
2. Lời gọi hệ thống: Các chương trình của người dùng kết nối với hệ thống (hệ điều
hành) và yêu cầu dịch vụ từ nó bằng cách tạo các lời gọi hệ thống. Tương ứng với
từng lời gọi hệ thống có một thủ tục dịch vụ của hệ điều hành mà lời gọi hệ thống
của người dùng có thể gọi đến. Thủ tục này tiết lập các tham số của lời gọi hệ thống
vào một địa chỉ xác định (có thể là thanh ghi) và sau đó dùng lệnh bẩy (trap
instruction) để khởi động hệ điều hành. Khi hệ điều hành nhân lệnh nó xem xét các
tham số kiểm tra đúng sai và thực hiện yêu cầu (thể hiện qua tham các tham số). Khi
công việc kết thúc hệ điều hành thiết lập lại các mã trạng thái thanh ghi thông báo
thủ tục đã được thực hiện hay hủy bỏ và trả lại điều khiển cho thủ tục thư viện từ
lệnh bẩy. Sau đó thủ tục thư viện trả điều khiển về cho chương trình của người dùng
bằng cách thông thường, trả lại mã trạng thái như một lời gọi hàm. Trong một vài
trường hợp các giá trị bổ sung được trả lại theo tham số.
A
B
C
D

Hình 1.2
Sơ đồ các bước thực hiện lời gọi hệ thống
Bộ nhớ
1
2
Các thủ
tục dịch
vụ
32
4
Hệ điều hành
Chương trình người dùng
Lời gọi hệ
thống
Hình 1.3
1.3 Cấu trúc của hệ điều hành
1. Cấu trúc khối
2. Cấu trúc phân tầng
5 Toán tử (Operators)
4 Chương trình của người dùng (Uer’s Programs)
3 Điều hành vào/ra (Input/Output Management)
2 Kết nối các xử lý toán tử (Operator-process Communications)
1 Điều hành bộ nhớ và trống từ (Memory and Drump Management)
0 Sơ đồ bộ nhớ và đa lập trình (Memory Allocation and Multiprogramming)
3. Máy ảo
Mô hình máy ảo của IBM (1979)
VM/370




CMS CMS CMS
Lời gọi hệ thống
Lệnh bẩy
Lệnh
vào/ra
VM/370
Lệnh bẩy
370 Bare Hardware
4. Mô hình khách/chủ (client/sever)
Xu hướng xây dựng hệ điều hành là chuyển mã (code) lên tầng cao chỉ để lại phần
tối thiểu ở phần nhân. Trong mô hình này có hai loại

Mô hình tập trung: trên toàn bộ hệ thống chỉ có một hệ điều hành ở máy chủ, các
máy khách kết nối với máy chủ để khai thác dịch vụ. Mọi xử lý thông tin đều thực
hiện trên máy chủ.
Hình 1-6
Client
process
Client
process
Process
sever
Terminal
sever
File
sever
Memory
sever
Kernel
Client nhận dịch

vụ bằng cách
gửi thông báo
Hình 1-7

Mô hình phân tán:
Trên hệ thống có nhiều hệ điều hành, các hệ điều hành có thể khác nhau nhưng kết nối
được với nhau. Các máy khách kết nối với máy chủ khi cần khai thác dịch vụ, mọi xử lý
thông tin trên máy nào do hệ điều hành ở máy đó đảm nhận. Khi không kết nói các máy
trong hệ thống có thể làm việc độc lập.
Client
Hệ ĐH1
Client
Hệ ĐH2

File sever
Hệ ĐH mạng
Process sever
Kernel
PC1 PC2 PC3 PC4
Mạng máy tính
Thông báo từ máy khách đến máy chủ
1.4 Phân loại hệ điều hành
1. Phân loại theo tính năng: Để phân loại theo tính năng chúng ta xét mọt số khái niệm sau:
-
Đơn chương: Hệ thống hỗ trợ chỉ một người sử dụng tại mỗi thời điểm
-
Đa chương: Hệ thống hỗ trợ niều nười sử dụng tại mỗi thời điểm
-
Đơn nhiệm: Hệ thống chỉ hỡ trợ thực hiện chương trình tại mỗi thời điểm
-

Đa nhiệm: Tại mỗi thời điểm hệ thóng hỗ trợ thực hiện niều chương trình
Từ các khái niệm trên chúng ta phân ra phân lại cho hệ điều hành
+ Hệ điều hành đơn chương/đơn nhiệm
+ Hệ điều hành đơn chương/đa niệm
+ Hệ điều hành đa chương/đa nhiệm
2. Phân loại theo xử lý thông tin
+ Hệ điều hành tập trung
+ Hệ điều hành phân tán
1.5 Các tính chất và các nguyên lý cơ bản khi thiết kế hệ điều hành
1. Các tính chất cơ bản
a) Độ tin cậy cao: Hệ thống phải hoạt động ổn định và luôn cho kết quả đúng trong
mọi tình huống, nghĩa là khi biết chắc chắn đúng thì HĐH mới cung cấp thông tin
cho người sử dụng. Để đảm bảo được tính chất này các hệ điều hành phải thiết lập
hệ thống giám sát (Monitor System), kiểm tra, đánh giá tính đúng đắn của mọi xử
lý dữ liệu, trong trường hợp không xử lý được HĐH thông báo lỗi, ngừng xử lý
hoặc trao quyền cho người sử dụng.
b) Tính an toàn: Hệ thống phải đảm bảo cho dữ liệu, chương trình không bị xóa
hoặc bị thay đổi trong mọi trường hợp và mọi chế độ hoạt động; phải có cơ chế tự
phục hồi trong một số tình huống cụ thể (yêu cầu này đặc biệt quan trọng trong hệ
thống đa nhiệm)
c) Tính hiệu quả: Đảm bảo các tài nguyên hệ thống máy tính được khai thác triệt để
sao cho ngay cả khi tài nguyên hạn chế vẫn có thể giải quyết được các vấn đề phức
tạp. Một trong những yếu tố đảm bảo tính hiệu quả là sự đồng bộ của hệ thống.
d) Tính tổng quát theo thời gian: Hệ điều hành phải có tính kế thừa đồng thời có khả
năng thích nghi với những thay đổi trong tương lai (tính mở). Tính kế thừa đảm
bảo cho các phiên bản phát triển của HĐH tương thích với nhau làm cho người sử
dụng yên tâm và không khó khăn khi chuyển từ phiên bản này sang phiên bản
khác. Tính chất này về mặt tâm lý bảo vệ được khách hàng và chính là điều kiện
tiên quyết cho HĐH tồn tại và phát triển
1.5 Một số nuyên lý cơ bản trong xây dựng HĐH

1. Nguyên lý moodul: Các chức năng của HĐH đều được tổ chức dưới dạng các modul
độc lập về mặt xử lý. Các modul trao đổi với nhau thông qua việc dùng tham số hoặc
hộp thư tĩnh (địa chỉ cố định). Quan hệ giữa các modul xác lập phân cấp khi kết nối
thành một hệ thống nhờ một modul chính.
2. Nguyên lý mở: Các modul có thể được thay thế hoặc bổ sung, sửa đổi dễ dàng và không
được ảnh hưởng đến các modul khác. Các modul được xây dựng theo nguyên tắc độc
lập về dữ liệu.
3. Nguyên lý sinh: Hệ thống cho phép tạo các phiên bản từ tập các modul bằng cách chọ
lọc các modul cần thiết nhờ một chương trình cài đặt. Chương trình cài đặt cung cấp
đầy đủ thông tin cho quá trình cài đặt và có hệ thống trợ giúp đầy đủ.
4. Nguyên lý giá trị chuẩn: Lời gọi mỗi modul, câu lệnh có thể có nhiều tham số. Việc nhớ
hết các tham số, ý nghĩa, qui cú pháp của chúng gây khó khăn cho người dùng, vì thế
hệ thống luôn có bộ các tham số chuẩn (mặc định) tương ứng với các trường hợp
thường dùng nhất bổ sung khi lời gọi modul hoặc câu lệnh thiếu tham số.
5. Nguyên lý Macro: Hệ thống cho phép xây dựng các phiếu yêu cầu, trong đó liệt kê các
công việc cần thực hiện và có thể tực hiện các công việc trong phiếu tự động như tực
hiện một chương trình. Các HĐH đều suwqr dụng nguyên tắc này trong đối thoại với
người sử dụng, làm cho việc tiếp xúc giauwx hệ thống và người dùng thêm linh hoạt.
6. Nguyên lý tương đối trong định vị: Các modul được viết theo địa chỉ tương đối kể từ đầu
bộ nhớ. Khi thực hiện chúng mới được định vị lại trong vùng bộ nhớ cụ thể. Nguyên lý
này cho phép HĐH sử dụng bộ nhớ một cách linh hoạt.
Các nguyên lý xây dựng HĐH (tiếp)
7. Nguyên lý lặp chức năng: Mỗi công việc được tực hiện bởi nhiều cách khác nhau với
những tổ hợp các modul khác nhau. Nguyên lý này bảo đảm cho hệ thống luôn
sẵn sàng và có độ an toàn cao và tạo cho người dùng linh hoạt hơn khi tiếp xúc
với hệ thống.
8. Nguyên lý bảo vệ nhiều mức: Để dảm bảo an toàn hệ thống, dữ liệu và chương trình
các HĐH đều có cơ chế bảo vệ niều mức. Bảo vệ nhiều mức làm giảm các rủi ro
do các lỗi không cố ý gây nên. Đối với tệp có thể có các mức bảo vệ: Miền
(domain), Máy tính, đĩa từ, thư mục.

Chương 2 Hệ thống tệp và cài đặt hệ thống tệp
2.1 Mở đầu:
-
Hầu hết các ứng dụng đều có nhu cầu lưu trữ dữ liệu và tìm lại được khi cần thiết.
Trong khi các tiến trình đang thực hiện, có thể nó cần lưu trữ một khối lượng dữ liệu
vào địa chỉ riêng. Các ứng dụng khác nhau có nhu cầu lưu trữ dữ liệu với kích thước
khác nhau mặc dầu khả năng lưu trữ bị hạn chế bới không gian địa chỉ ảo. Vì thế có
những ứng dụng có không gian lưu trữ phù hợp, có những ứng dụng không phù hợp.
-
Việc lưu thông tin trong không gian địa chỉ của các tiến trình, thì khi tiến trình kết
thúc dữ liệu sẽ bị mất. Đối với các ứng dụng cơ sở dữ liệu, thông tin (dữ liệu) cần phải
được lưu trữ hàng tuần, hàng tháng, hành năm vì vậy nếu các tiến trình sử dụng dữ
liệu thì khi kết thúc dữ liệu sẽ mất, hoặc khi máy gặp sự cố.
-
Có thể nhiều tiến trình cùng truy nhập vào cùng một mục dữ liệu tại một thời điểm
(trong hệ thống phân tán, đa nhiệm/đa chương)
Như vậy có 3 yêu cầu cần thiết cho việc lưu trữ thông tin (dữ liệu):
1. Cần cung cấp khả năng lưu trữ khối lượng thông tin (dữ liệu) lớn
2. Thông tin (dữ liệu) phải giữ lại khi kết thúc tiến trình sử dụng nó
3. Bảo đảm đa tiến trinh truy nhập đồng thời vào một mục dữ liệu tại một thời điểm
Để giải quyết các yêu cầu này các HĐH đều cung cấp cơ chế lưu trữ thông tin (dữ liệu)
lên các thiết bị bộ nhớ ngoài theo đơn vị quản lý gọi là tệp. Sao cho các tiến trình có thể
đọc hoặc tạo ra nó khi cần thiết. Thông tin (dữ liệu) lưu trữ trong tệp phải vĩnh cửu
không bị ảnh hưởng vào sự khởi tạo hay kết thúc tiến trình.
2.2 Tệp
Tệp là cơ chế trừu tượng, cung cấp phương tiện để lưu trữ thông tin (dữ liệu) lên các
thiết bị bộ nhớ ngoài và có thể đọc lại khi cần thiết.
1. Tên tệp:
- Tên tệp gồm hai thành phần: Tên và đuôi tệp (phần mở rộng). Tên tệp dùng để định danh một
nhóm thông tin lưu trữ trên thiết bị bộ nhớ ngoài. Qui tắc đặt tên tệp tùy theo từng hệ điều hành

trong các hệ điều hành khác nhau qui tắc đặt tên có thể là kacs nhau.
Đuôi tệp (phần mở rộng) nhiều khi cũng phản ánh một phần bản chất thông tin lưu trữ trong
tệp, ví dụ đuôi txt là tệp văn bản, pas là tệp chương trình nguồn trong ngôn ngữ Pascal, doc là
tệp văn bản soan thảo trong ms-word v v. Trong một số trường hợp đuôi tệp là mặc định của
một số hệ thống phần mềm hoặc các trình biên dịch của các ngôn ngữ. Ngoài việc phản ánh
mọt phần bản chất thông tin lưu trữ trong tệp đuôi tệp còn giúp cho việc tìm kiếm nhanh và
hiệu quả.
2. Kiểu tệp:
- Mỗi hệ điều hành hỗ trợ một vài kiểu tệp, ví dụ trong UNIX và MS-DOS có các tệp chính
qui, các thư mục, các tệp các ký hiệu hoặc các khối đặc biệt. Các tệp chính qui là các tệp của
người dùng chứa các thông tin của người dùng. Các HĐH quản lý các thư mục như các tệp hệ
thống dùng để bảo trì hệ thống tệp. Các tệp các ký hiệu hoặc các khối đặc biệt có quan hệ với
hệ thống các thiết bị vào/ra, có thể là tệp mô tả thiết bị hoặc trình điều khiển thiết bị.
Các tệp chính qui phổ biến là các loại tệp ASCII (tệp văn bản) hoặc tệp nhị phân, các tệp có
cấu trúc văn bản thì có
3. Phân loại theo truy nhập:
Theo phương hức truy nhập vào tệp người ta chia tệp thành 2 loại: Các tệp truy nhập tuần tự là
các tệp muốn truy nhập vào một phần tử phải truy nhập qua phần tử trước đó (các tệp tuần tự
được tổ chức lưu trữ trên các thiết bị băng từ). Các loại tệp trực truy (truy nhập ngẫu nhiên) là
các tệp cho phép truy nhập vào bất kỳ phần tử nào của tệp tại mọi thời điểm (lưu trữ là đĩa từ)
4. Thuộc tính tệp:
- Để quản lý hệ thống tệp được tốt hơn các HĐH ngoài việc lưu trữ dữ liệu còn tổ chức lưu trữ
thêm một số thông tin (các thuộc tính-attributes) giúp cho việc quản lý tệp chính xác và có hiệu
quả, ví dụ như: ngày tháng, time cập nhật cuối cùng, kích thước tệp, các cờ ẩn, chỉ đọc v v.
Tên thuộc tính Ý nghĩa
Bảo vệ (Protection) Qui định quyền và cách truy nhập
Mật khẩu (Password) Truy nhập theo mật khẩu
Bản quyền (owner) Quyền dùng riêng
Cờ chỉ đọc (read only) bit set 1 tệp chỉ đọc, bit set 0 tệp bình thường
Cờ ẩn (Hidden) bit set 1 tệp ẩn, bit set 0 tệp bình thường

Cờ hệ thống (system) bit set 1 tệp hệ thống, bit set 0 tệp bình thường
Nhãn đĩa (volume label) bit set 1 cho các tệp nếu có nhãn đĩa, còn không bit set 0
Cờ thư mục (directory) bit set 1 là thư mục, bit set 0 là tệp
Cờ lưu trữ (archive) bit set 1 tệp lưu trữ (mặc định)
Cờ ASCII/Nhị phân bit set 1 tệp nhị phân, bit set 0 tệp văn bản
Cờ truy nhập ngẫu nhiên bit set 1 tệp truy nhập ngẫu nhiên, bit set 0 tệp tuần tự
Cờ lưu trữ tạm thời bit set 1 tệp tạm xóa, bit set 0 tệp bình thường
Cờ khóa bit set 0 tệp không khóa, bit set khác 0 tệp khóa
Độ dài bản ghi Số bytes của một bản ghi
Khóa độ dời Độ dời khóa giữa các bản ghi
Độ dài khóa số bytes của trường khóa
Time, Date
Kích thước hiện thời Kích thước hiện thời của tệp
Kích thước tối đa cảu têp Kích thước tối đa của tệp (bytes)
Địa chỉ khối dữ liệu đầu tiên của tệp Kích thước tối đa của tệp
Tất cả các thuộc tính của tệp được lưu trong đầu tệp (header)
5. Thư mục
Thư mục được các hệ điều hành quản lý như một tệp hệ thống. Nội dung của thư mục không
phải là thông tin (dữ liệu) lưu trữ mỗi phần tử của nó là một đầu vào của một tệp. Cấu trúc thư
mục giúp cho việc tổ chức lưu trữ tệp được tối ưu và có hiệu quả: Nhóm các tệp có quan hệ vào
cùng một thư mục, tìm kiếm nhanh, số tệp quá nhiều trong một thư mục HĐH không quản lý
được.
- Tên thư mục: Mỗi thư mục có tên, qui tắc đặt tên như đặt tên tệp. Thư mục được tổ chức phân
cấp cha/con
- Đường dẫn: Đường dẫn tuyệt đối và đường dẫn tương đối.
2.3 Cài đặt hệ thống tệp
Tổ chức lưu trữ tệp là chức năng quan trọng của HĐH, chìa khóa của việc tổ chức lưu trữ là
làm thế nào để giữ được vết (địa chỉ) các khối dữ liệu của tệp trên thiết bị lưu trữ. Có nhiều
phương pháp khác nhau để tổ chức lưu trữ tệp.
1. Phương pháp lưu trữ liền nhau:

2. Danh sách liên kết:
3. Bảng chỉ số: Để khắc phục nhược điểm của hai phương pháp trên chúng ta sử dụng phương
pháp bảng chỉ số.
- Cấu trúc: Mỗi đơn vị đọc ghi trên ổ đĩa được quản lý bằng một đầu vào trong bảng. Như vậy
số phần tử trong bảng bằng số đơn vị đọc ghi trên đĩa (nói cách khác mối khối đọc ghi trên đĩa
có tương ứng 1-1 một đại diện trong bảng.
- Nội dung các phần tử của bảng: Mỗi phần tử của bảng chứa địa chỉ các khối dữ liệu của các
tệp và như vậy địa chỉ các khối dữ liệu củ mỗi tệp tạo thành một liên kết (mắt xich-chain) trong
bảng. Dựa vào các mắt xích đó hệ thống truy nhập vào hệ thống các tệp
Ví dụ: Giả sử trên đĩa từ có 15 khối đọc ghi được địc chỉ hóa (chỉ số) từ 0-15.Giả sử các khối dữ
liệu của tệp A được lưu tại các khối 2, 4, 6, 7, 9. Khi đó mắt xích các khối dữ liệu của tệp A hình
thành tron bảng chỉ số như hình 2-8.
000 0100
000 0110
000 0111
000 1001
EOF(A)
Tệp A bắt
đầu từ đây
Mắt xích
của tệp A
Hình 2-8
0
1
2
3
4
5
6
7

8
9
10
11
12
13
14
15
4. I-nút (I-node): Đại chỉ các khối dữ liệu của mỗi tệp được lưu trong một bảng nhỏ I-nút
(giống như bảng chỉ số) và danh sách các thuộc tính. Các đia chỉ của khối dữ liệu đầu tiên được
chứa trong I-nút cho các tệp nhỏ, khi mà các thông ti cần thiết chứa hết trong một I-nút và
chúng được nạp vào bộ nhớ khi mở tệp. Nếu các tệp có kích thước lớn, một trong các địa chỉ
trong một I-nút là địa chỉ khối của đĩa từ gọi là khối đơn trực tiếp. Các khối đơn này chứa các
địa chỉ các khối dữ liệu chứa chưa hết trong một I-nút. Nếu tệp quá lớn các địa chỉ các khối dữ
liệu vẫn chưa chứa đủ thì địa chỉ khác trong i-nút, gọi là khối đôi trực tiếp, chứa địa chỉ của một
khối, trong đó chứa danh sách các khối đơn. Mỗi mọt khối đơn tực tiếp chứa một vài trăm khối
dữ liệu của tệp. Nếu tệp quá lớn thì có thể sử dụng cấu trúc khối ba trực tiếp. Hệ điwwù hành
UNIX dùng phương pháp này để cài đặt tệp. Xem minh họa ở hình 2-9.
Các thuộc
tính
Địa chỉ trên đĩa
Khối đơn trực tiếp Khối đúp trực tiếp Khối ba trực tiếp
5. Sự an toàn của hệ thống tệp
Sự an toàn của hệ thống tệp là yêu cầu cao đối với hệ thống. Nếu hệ thống tệp bị phá hoại thì
có thể gây tai họa lớn hơn khi bị hỏng phần cứng. Đối với những người quản ký hệ thống
chương trình, tài liệu, các cơ sở dữ liệu như ngân hàng, kho bạc, kế toán, nếu dữ liệu bị phá
hoại thì đối với họ là thảm họa. Để bảo đảm an toàn hệ thống tệp chúng ta xét một số phương
pháp sau:
a) Quản lý các khối hỏng: Trên các ổ đĩa thường có các khối hỏng, nếu không quản lý được các
khối hỏng nười sử dụng có thể vô tình làm mất dữ liệu khi ghi dữ liệu vào các khối hỏng. Có

hai phương pháp mà hệ thống có thể kiểm soát các khố hỏng: bằng phần cứng và phần mềm.
Bằng phần cứng là khi bộ điều khiển đĩa khởi tạo lần đầu tiên nó kiểm tra và ánh xạ chúng
sang danh sách các khối hỏng. Từ đó về sau các khối hỏng sẽ vĩnh viện không sử dụng để lưu
dữ liệu. Bằng phần mềm, mọi hệ thống đều có các tiện ích để kiểm soát các khối hỏng, ví dụ
chương trình scan của HĐH Windows, các tiện ích này sẽ được hệ thống tự khởi động hoặc
do nười dùng yêu cầu khi thấy cần thiết.
b) Sao lưu: Một trong những biện pháp có hiệu quả nhất là sao lưu dữ liệu ra ngoài hệ thống.
Tùy mức độ quan trọng mà nười quản lý hệ thống định chu kỳ sao lưu. Sao lưu phải nhiều
bản, lưu giữ ở các nơi khác nhau.
c) Kiểm soát sự tương thích của hệ thống tệp: Hầu hết các tệp được hệ thống sử dụng bằng
cách đọc các khối, sửa đổi chúng và sau đó ghi lại. Nếu hệ thống bị hỏng trước khi các khối
bị sửa đổi được gi vào tệp, hệ thống có tể gặp trạng thái không tương thích. Liên quan đến sự
tương thích hệ thống tệp hầu hết các HĐH đều có trình tiện ích để kiểm tra sự tương thích.
Các tiện ích này có thể được thực hiện khi hệ thống khởi động, hoặc, thoog thường sau khi hệ
thống bị sự cố. Tiện ích này gồm hai bảng bộ đếm cho mỗi khối đọc/ghi trên đĩa: Bộ đếm ghi
số lần mỗi khối dữ liệu xuất hiện trong các tệp, bộ đếm thứ hai đếm số lần mỗi khối xuất hiện
trong danh sách tự do, khởi tạo ban đầu cả hai bộ đếm bằng không. Nếu hệ thống tệp tương
thích, mỗi khối chỉ xuất hiện một lần hoặc trong bộ đếm thứ nhất hoặc trong bộ đếm thứ hai.
Các trường hợp không tương thích co thể xẩy ra: Một khối nào đó xuất hiện trong cả hai bảng đếm,
trường hợp mất khối. Sự mất khối thực tế không có hại gì nhưng nó làm giảm khả năng lưu trữ
của ổ đĩa. Giải quyết trường hợp này là thêm chúng vào danh sách các khối tự do. Trường hợp
thứ hai, nếu một khối xuất hiện hai lần trong bảng đếm thứ hai, xây dựng lại bộ đếm thứ hai.
Trường hợp thứ ba, khi một khối nào đó xuất hiện trong nhiều tệp (dính tệp). Để giải quyết vấn
đề này sao thêm một bản vào một khối tự do và chèn thêm vào cho các tệp bị dính.
d) Hiệu năng của hệ thống tệp: Hiệu năng của hệ thống tệp cũng được quan tâm trong quá trình tổ
chức lưu trữ hệ thống tệp. Truy nhập đĩa có tốc độ chậm hơn nhiều so với truy nhập bộ nhớ
trong. Vì thế các hệ thống đều được thiết kế sao cho giảm thiểu thời gian truy ập tệp trên đĩa.
Kỹ thuật chung nhất sử dụng để làm giảm thời gian truy nhập đĩa là kỹ thuật tạo vùng đệm
(buffer) hoặc Cache trên đĩa khi đọc các tệp vào hệ thống.
2.4 Bảo vệ (protection), bảo mật (security) thông tin.

Bảo vệ và bảo mật thông tin là yêu cầu từ phía người sử dụng.
1. Bảo vệ (protection): Bảo vệ là các cơ chế từ bên trong hệ thống dùng để bảo vệ dữ liệu và hệ
thống. Các cơ chế bảo vệ thường được thực hiện thông qua: thông báo lỗi (error messages),
hiển thị các câu cảnh báo (Warning messages) hoặc thực hiện các mặc định No. Các cơ chế
bảo vệ được hệ thống thực hiện không phụ thuộc vào người sử dụng, môi trường cụ thể.
2. Bảo mật (security): Bảo mật là các cơ chế của hệ thống cho phép người sử dụng chống các
truy nhập bất hợp pháp vào hệ thống và hệ thống tệp. Cơ chế bảo mật được thực hiện hay
không phụ thuộc vào người sử dụng. Hệ thống cho phép người sử dụng thực hiện bảo mật
bằng các phần tự phát triển hoặc sử dụng các công cụ cung cấp bởi hệ thống.
Chương 3 Các thiết bị vào/ra
3.1 Mở đầu: Một trong những chức năng của hệ điều hành là điều quản lý toàn bộ hệ thống
các thiết bị vào ra của máy tính. Hệ điều hành nhận bắt các lệnh từ người sử dụng,
chuyển các lệnh đến các thiết bị, đón bắt các ngắt và xử lý một số lỗi. Hệ điều hành
còn cung cấp giao diện đơn giản dễ sử dụng giữa các thiết bị đầu cuối và hệ thống.
Hầu hết các ứng dụng đều có nhu cầu chuyển dữ liệu vào hệ thống để xử lý đồng
thời chiết xuất thông tin đã xử lý ra ngoài hệ thống nhờ hệ thống các thiết bị vào/ra.
Như vậy các thiết bị vao/ra là phương tiện để thực hiện chuyển dữ liệu vào/ra của hệ
thống máy tính.
3.2 Các nguyên tắc phần cứng vào/ra: Theo quan điểm của người sử dụng thì mỗi đối tượng
có thể xem phần cứng vào/ra với các góc độ khác nhau: Các kỹ sư điện tử thì phần
cứng của thiết bị vào/ra chỉ là chip, mạch điện, nguồn, motor v v. Đối với người lập
trình thì quan tâm đến các giao diện, các lệnh để phần cứng tiếp nhận, khuôn dạng
dữ liệu khi thực hiện vào/ra, các chức năng và các lỗi có thể thông báo.
1. Phân loại thiết bị vào/ra: Để phân loại các thiết bị vào/ra người ta dựa vào khuôn
dạng dữ liệu mà thiết bị thực hiện vào/ra với hệ thống. Các thiết bị vào/ra có thể chia
thành hai loại chủ yếu: Các thiết bị khối và các thiết bị ký tự.
a) Các thiết bị khối: Các thiết bị khối là các thiết bị tực hiện vào/ra hệ thống theo từng
khối dữ liệu, mỗi khối có kích thước cố định, có địa chỉ. Kích thước các khối như
nhau nếu cùng một thiết bị, ngược lại các thiết bị khác nhau thì chúng có thể thực
hiện vào/ra theo khối dữ liệu có kích thước khác nhau. Nói chung mỗi khối thường

có kích thước từ 128-1024 bytes. Các thiết bị khối đọc/ghi dữ liệu theo khối vì vậy
trong quá trình xử lý có thể thực hiện tìm kiếm, lựa chọn. Ví dụ: đĩa từ, card mạng
(NIC)
b) Các thiết bị ký tự: Các thiết bị là các thiết bị thực hiện vào/ra với hệ thống theo từng
dãy ký tự gối nhau. Các dãy ký tự không được địa chỉ hóa vì vậy khi xử lý không thể
tìm kiếm hoặc lựa chọn. Ví dụ: Màn hình, máy in
Tuy nhiên sự phân loại này chưa hoàn chỉnh, một vài thiết bị theo sự phân loại này không xác
định được, ví dụ như đồng hồ, bàn phím, chuột
2. Sự kết nối các thiết bị vào/ra với hệ thống: Các thiết bị không trực tiếp kết nối vào hệ
thống, chúng kết nối với hệ thống thông qua các cổng (port). Mỗi cổng có địa chỉ cố định
trên mainboard hoặc là một thanh ghi thiết bị. Sơ đồ kết nối chỉ ra trong hình 3-1.
CPU
Bộ nhớ
Bộ điều
khiển đĩa
Bộ điều
khiển máy in

Bộ điều khiển
thiết bị
Đĩa từ
Đơn bus
Hình 3-1 Mô hình kết nối giữa CPU, RAM và bộ điều khiển thiết bị
Máy in
3. Bộ điều khiển thiết bị (driver, device controller): Mỗi một thiết bị vào/ra đều có bộ điều
khiển của thiết bị đó. Mỗi bộ điều khiển có thể điều khiển một vài thiết bị tương thích, tuy
nhiên cũng có thể cùng một thiết bị nhưng do hai hãng sản xuất khác nhau thì phải có hai bộ
điều khiển khác nhau (bộ điều khiển do các hãng sản xuất phát triển). Hiện nay các hệ điều
hành thường tích hợp nhiều bộ điều khiển của các thiết bị, vì thế một số thiết bị chỉ cần cắm
vào máy tính, HĐH tự nhận diện và chọn cho thiết bị bộ điều khiển tương thích (hệ thống Plug

and Play). Trong đa số các trường hợp các bộ điều khiển đều phải cài đặt.
a) Chức năng của bộ điều khiển thiết bị: Chức năng chính của bộ điều khiển thiết bị la điều khiển toàn
bộ thiết bị đó, biến đổi các dòng bits lien thiếp thành các khối bytes, kiểm tra và thực hiện sử đổi
một số lỗi trong quá trình thực hiện vào ra.
b) Sự phối hợp giữa HĐH, CPU và bộ điều khiển thiết bị vào ra: Hê điều hành thực hiện vao/ra bằng
cách ghi các lệnh vào các thanh ghi thiết bị (có cả tham số) sau đó bẩy CPU nhận lệnh, CPU sau
khi nhân lệnh, CPU trao quyền điều khiển cho bộ điều khiển thiết bi và CPU rời khỏi thiết bị
(CPU rỗi). Khi lệnh đã được hoàn thành bộ điều khiển phát tín hiệu ngắt HĐH kích hoạt CPU
kiểm tra kết quả và thiết lập trạng thái ở thanh ghi thiết bị.
4. Truy nhập bộ nhớ trực tiếp (kỹ thuật DMA-Direct Memory Access): Một số bộ điều khiển, đặc
biệt là các thiết bị khối được hỗ trợ kỹ thuật truy nhập bộ nhớ trực tiếp-DMA. Công nghệ DMA
nhằm mục đích tăng hiệu quả hệ thống bằng cách giảm thơi gian các truy nhập bậc thấp với tốc
độ chậm của các thiết bị vào/ra (đặc biệt là các thiết bị khối) nhằm giải phóng thời gian cho CPU.
Để làm rõ tác dụng của DMA chúng ta xét quá trình đọc dữ liệu từ đĩa từ của bộ điều khiển đĩa
khi không có hỗ trợ cua DMA và khi có hỗ trợ của DMA.
a) Quá trình đọc dữ liệu từ đĩa từ khi không có DMA. Đầu tiên bộ điều khiển đĩa đọc một khối (có
kích thước một hoặc lớn hơn một cung) từ đĩa từ bit theo bit liên tiếp chuyển vào vùng đệm của
bộ điều khiển. Sau khi một khối dữ liệu được đọc hết vào vùng đệm, bộ điều khiển tiến hành
kiểm tra, tính toán và sử một số lỗi (nếu có). Tiếp đến bộ điều khiển phát ngắt yêu cầu HĐH
chuyển từng khối bytes từ vùng đệm vào bộ nhớ tại địa chỉ chỉ định bởi CPU. Khi một từ (word)
được chuyển vào bộ nhớ, thanh ghi đếm tăng bằng số bytes đã chuyển. Quá trình lặp lại cho đến
khi chỉ số trên thanh ghi đếm (count) chỉ ra số bytes cần đọc, bộ điều khiển kích HĐH, HĐH kích
CPU kiểm tra kết quả. Như vậy trong quá trình đọc đĩa làm mất thời gian của CPU khi tham gia
đánh địa chỉ trong bộ nhớ. DMA được phát triển để giải phóng CPU khỏi công việc này.
b) Quá trình đọc dữ liệu từ đĩa từ khi có DMA: Khi có DMA, trên bộ điều khiển có thêm thanh
ghi địa chỉ (chip DMA) dùng để lưu địa chỉ đầu của vùng nhớ sẽ cấp phát, xem sơ đồ ở hình 3-3 và
thanh ghi đếm (count) chứa số bytes cần đọc. Đầu tiên bộ điều khiển đĩa đọc một khối (có kích
thước một hoặc lớn hơn một cung) từ đĩa từ bit theo bit liên tiếp chuyển vào vùng đệm của bộ điều
khiển. Sau khi một khối dữ liệu được đọc hết vào vùng đệm, bộ điều khiển tiến hành kiểm tra, tính
toán và sử một số lỗi (nếu có). Tiếp đến bộ điều khiển phát ngắt yêu cầu HĐH chuyển từng khối

bytes từ vùng đệm vào bộ nhớ tại địa chỉ chỉ định trên thanh ghi địa chỉ DMA. Khi một từ (word)
được chuyển vào bộ nhớ, thanh ghi giảm bằng số bytes đã chuyển và thanh ghi địa chỉ tự tăng lên
1. Quá trình lặp lại cho đến khi chỉ số trên thanh ghi đếm bằng không, bộ điều khiển kích HĐH,
HĐH kích CPU kiểm tra kết quả. Như vậy khi có DMA CPU không phải đánh địa chỉ trong bộ nhớ
mà nó được giải phóng hoàn toàn quá trình đọc đĩa.
CPU RAM
Counter
Buffer
Thanh ghi đếm
Counter
Bộ điều khiển đĩa
System Bus
Hình 3-2 Sơ đồ kết nối khi không có DMA
Đĩa từ
CPU RAM
Count
Buffer
Thanh ghi đếm
(Counter)
Bộ điều khiển đĩa
System Bus
Hình 3-3 Sơ đồ kết nối khi có DMA
Thanh ghi địa chỉ
Đĩa từ
Chương 4 Hệ điều hành quản lý bộ nhớ
4.1 Mở đầu: Bộ nhớ là tài nguyên quan trọng cần được tổ chức quản lý một cách thận trọng
và có hiệu quả. Bộ nhớ là tài nguyên mà không có nó thì không thể thực hiện được
chương trình. Trên thực tế tại mọi thời điểm bộ nhớ không trực tiếp tham gia vào việc
thực hiện chương trình, mà nó chỉ là nơi lưu trữ tạm thời dữ liệu của chương trình để
chờ xử lý. Tuy nhiên nếu kích thước bộ nhớ lớn thì tốc độ thực hiện chương trình sẽ

được cải thiện. Trên thực tế chương trình được lưu ở bộ nhớ ngoài, có kích thước có thể
lớn hơn kích thước bộ nhớ vật lý thực của máy tính, và luôn luôn sẵn sàng chờ cấp phát
không gian trong bộ nhớ vật lý khi thực hiện. Khi kích thước chương trình lớn hơn kích
thước bộ nhớ vật lý, tồn tại nhiều kỹ thuật khác nhau cho phép sử dụng một phần không
gian của bộ nhớ ngoài như là sự mổ rộng của bộ nhớ trong, tạo ra cảm giác có bộ nhớ
trong có kích thước lớn hơn nhiều kích thước bộ nhớ vật lý thực. Sự tồn tại tài nguyên
ảo này làm cho việc lập trình trở nên đơn giản và dễ dàng hơn vì người sử dụng khi viết
chương trình không cần phải lo tính toán khối lượng bộ nhớ cần sử dụng cho chương
trình của mình khi thực hiện. Một phần của bộ nhớ trong phải giành để lưu trữ nhân
của HĐH, đó là tập các chương trình điều khiển phải thường trú trong bộ nhớ để thực
hiện các yêu cầu cấp bách (các thủ tục bậc thấp điều khiển vao/ra, bảng vectơ ngắt, các
thủ tục thư viện bậc thấp khác v…v.).
4.2 Các phép ánh xạ bộ nhớ và các cấu trúc cơ bản của modul chương trình
1. Các phép ánh xạ bộ nhớ: Phần lớn các chương trình đều viết dưới ngôn ngữ bậc cao
(ngôn ngữ giải thuật), muốn thực hiện được phải dịch sang ngôn ngữ thực hiện được
của hệ thống (ngôn ngữ máy). Sơ đồ chuyển dịch đó được minh họa trong hình 4-1.
Chương trình
nguồn
Chương trình
đích
Modul tải
Bộ nhớ (RAM)
HĐH
Dịch
Liên
kết
Nạp vào
RAM
Hình 4-1 sơ đồ chuyển đổi chương trình

×