Giáo trình Hệ điều hành - Từ Minh Phương

MỤC LỤC

CHƯƠNG 1: GIỚI THIỆU CHUNG . 8

1.1. CÁC THÀNH PHẦN CỦA HỆ THỐNG MÁY TÍNH . 8

1.2. TỔ CHỨC PHẦN CỨNG CỦA MÁY TÍNH . 9

1.3. KHÁI NIỆM HỆ ĐIỀU HÀNH . 12

1.4. CÁC DỊCH VỤ DO HỆ ĐIỀU HÀNH CUNG CẤP . 15

1.5. GIAO DIỆN LẬP TRÌNH CỦA HỆ ĐIỀU HÀNH . 17

1.6. QUÁ TRÌNH PHÁT TRIỂN VÀ MỘT SỐ KHÁI NIỆM QUAN TRỌNG . 19

1.7. CẤU TRÚC HỆ ĐIỀU HÀNH . 24

1.7.1. Các thành phần của hệ điều hành . 24

1.7.2. Nhân của hệ điều hành . 28

1.7.3. Một số kiểu cấu trúc hệ điều hành . 29

1.8. MỘT SỐ HỆ ĐIỀU HÀNH CỤ THỂ . 34

1.9. CÂU HỎI VÀ BÀI TẬP CHƯƠNG . 37

CHƯƠNG 2: QUẢN LÝ TIẾN TRÌNH . 39

2.1. CÁC KHÁI NIỆM LIÊN QUAN ĐẾN TIẾN TRÌNH . 39

2.1.1. Tiến trình là gì . 39

2.1.2. Trạng thái của tiến trình. 40

2.1.3. Thông tin mô tả tiến trình . 42

2.1.4. Bảng và danh sách tiến trình . 43

2.1.5. Các thao tác với tiến trình . 44

2.2. LUỒNG . 47

2.2.1. Luồng thực hiện là gì . 47

2.2.2. Ví dụ đa luồng trên hệ thống cụ thể . 48

2.2.3. Tài nguyên của tiến trình và luồng . 52

2.2.4. Ưu điểm của mô hình đa luồng . 53

2.2.5. Luồng mức người dùng và luồng mức nhân . 53

2.3. ĐIỀU ĐỘ TIẾN TRÌNH . 56

2.3.1. Khái niệm điều độ . 56

2.3.2. Các dạng điều độ . 56

2.3.3. Các tiêu chí điều độ . 58

2.3.4. Các thuật toán đi ều độ . 59

2.3.5. Điều độ trên hệ thống cụ thể . 64

2.4. ĐỒNG BỘ HÓA TIẾN TRÌNH ĐỒNG THỜI . 66

2.4.1. Các vấn đề đối với tiến trình đồng thời . 66

2.4.2. Yêu cầu với giải pháp cho đoạn nguy hiểm . 68

2.4.3. Giải thuật Peterson . 69

2.4.4. Giải pháp phần cứng . 70

2.4.5. Cờ hiệu (semaphore) . 72

2.4.6. Một số bài toán đồng bộ . 74

2.4.7. Monitor . 77

2.4.8. Bế tắc . 80

2.5. CÂU HỎI VÀ BÀI TẬP CHƯƠNG . 88

CHƯƠNG 3: QUẢN LÝ BỘ NHỚ . 91

3.1. ĐỊA CHỈ VÀ CÁC VẤN ĐỀ LIÊN QUAN . 91

3.1.1. Vấn đề gán địa chỉ . 91

3.1.2. Địa chỉ lô gic và địa chỉ vật lý . 93

3.2. MỘT SỐ CÁCH TỔ CHỨC CHƯƠNG TRÌNH . 93

3.2.1. Tải trong quá trình thực hiện . 93

3.2.2. Liên kết động và thư viện dùng chung . 94

3.3. PHÂN CHƯƠNG BỘ NHỚ . 95

3.3.1. Phân chương cố định . 96

3.3.2. Phân chương động . 98

3.3.3. Phương pháp kề cận . 100

3.3.4. Ánh xạ địa chỉ và chống truy cập bộ nhớ trái phép . 101

3.3.5. Trao đổi giữa bộ nhớ và đĩa (swapping) . 102

3.4. PHÂN TRANG BỘ NHỚ . 103

3.4.1. Khái niệm phân trang bộ nhớ . 103

3.4.2. Ánh xạ địa chỉ . 104

3.4.3. Tổ chức bảng phân trang . 107

3.5. PHÂN ĐOẠN BỘ NHỚ . 112

3.5.1 Khái niệm. 112

3.5.2. Ánh xạ địa chỉ và chống truy cập trái phép . 112

3.5.3. Kết hợp phân đoạn với phân trang . 114

3.6. BỘ NHỚ ẢO . 114

3.6.1. Khái niệm bộ nhớ ảo . 114

3.6.2. Nạp trang theo nhu cầu . 115

3.7. ĐỔI TRANG . 118

3.7.1. Tại sao phải đổi trang . 118

3.7.2. Các chiến lược đổi trang . 119

3.8. CẤP PHÁT KHUNG TRANG . 125

3.8.1. Giới hạn số lượng khung . 125

3.8.2. Phạm vi cấp phát khung. 126

3.9. TÌNH TRẠNG TRÌ TRỆ . 126

3.10. QUẢN LÝ BỘ NHỚ TRONG INTEL PENTIUM . 127

3.11. QUẢN LÝ BỘ NHỚ TRONG WINDOWS 32 bit . 130

3.12. CÂU HỎI VÀ BÀI TẬP CHƯƠNG . 131

CHƯƠNG 4: HỆ THỐNG FILE . 133

4.1. KHÁI NIỆM FILE . 133

4.1.1. File là gì ? . 133

4.1.2. Thuộc tính của file. 134

4.1.3. Cấu trúc file . 136

4.2. CÁC PHƯƠNG PHÁP TRUY CẬP FILE . 137

4.2.1. Truy cập tuần tự . 137

4.2.2. Truy cập trực tiếp . 137

4.2.3. Truy cập dựa trên chỉ số . 138

4.3. CÁC THAO TÁC VỚI FILE . 139

4.4. THƯ MỤC . 141

4.4.1. Khái niệm thư mục . 141

4.4.2. Các thao tác với thư mục . 142

4.4.3. Cấu trúc hệ thống thư mục . 143

4.4.4. Tên đường dẫn . 147

4.5. CẤP PHÁT KHÔNG GIAN CHO FILE . 148

4.5.1. Cấp phát các khối liên tiếp . 148

4.5.2. Sử dụng danh sách kết nối . 150

4.5.3. Sử dụng danh sách kết nối trên bảng chỉ số . 151

4.5.4. Sử dụng khối chỉ số . 152

4.6. QUẢN LÝ KHÔNG GIAN TRÊN ĐĨA . 153

4.6.1. Kích thước khối . 153

4.6.2. Quản lý các khối trống . 154

4.7. TỔ CHỨC BÊN TRONG CỦA THƯ MỤC . 156

4.7.1. Danh sách. 156

4.7.2. Cây nhị phân . 156

4.7.3. Bảng băm . 156

4.7.4. Tổ chức thư mục của DOS (FAT) . 157

4.7.5. Thư mục của Linux . 157

4.8. ĐỘ TIN CẬY CỦA HỆ THỐNG FILE . 158

4.8.1. Phát hiện và loại trừ các khối hỏng . 158

4.8.2. Sao dự phòng . 159

4.9. BẢO MẬT CHO HỆ THỐNG FILE . 161

4.9.1. Sử dụng mật khẩu . 161

4.9.2. Danh sách quản lý truy cập . 162

4.10. HỆ THỐNG FILE FAT . 163

4.10.1. Đĩa lôgic. 164

4.10.2. Boot sector . 165

4.10.3. Bảng FAT . 167

4.10.4. Thư mục gốc . 168

4.11. TỔ CHỨC THÔNG TIN TRÊN BỘ NHỚ THỨ CẤP . 169

4.11.1. Tổ chức đĩa cứng . 169

4.11.2. Điều độ đĩa . 172

4.12. QUẢN LÝ VÀO/RA . 176

4.12.1. Phần cứng . 176

4.12.2. Tổ chức phân hệ quản lý vào/ra . 177

4.12.3. Quản lý vào/ra mức trên . 179

4.13. CÂU HỎI VÀ BÀI TẬP CHƯƠNG . 181

TÀI LIỆU THAM KHẢO . 183

pdf183 trang | Chuyên mục: Hệ Điều Hành | Chia sẻ: dkS00TYs | Lượt xem: 3333 | Lượt tải: 1download
Tóm tắt nội dung Giáo trình Hệ điều hành - Từ Minh Phương, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
ết bị 
cho phép truy cập trực tiếp. 
- Nhóm vào/ra theo chuỗi ký tự, bao gồm driver chuột, bàn phím hoặc thiết bị tương tự. 
- Nhóm driver mạng. Ví dụ điển hình của giao diện với driver cho thiết bị mạng là giao diện 
dưới dạng socket. Giao diện dạng này gồm các hàm cho phép một ứng dụng tạo ra socket 
– có thể hiểu là điểm kết nối với ứng dụng ở xa – tới một địa chỉ nào đó. Sau đó socket sẽ 
lắng nghe cho tới khi ứng dụng ở xa kết nối vào socket. Tiếp theo, giao diện cung cấp các 
hàm cho phép gửi và nhận dữ liệu với ứng dụng ở xa thông quan socket được tạo. 
P
h
ần
 m
ềm
Phần còn lại của hệ điều hành 
Phân hệ quản lý vào/ra 
Driver 
thiết bị 
Driver 
thiết bị 
… 
Driver 
thiết bị 
Driver 
thiết bị 
P
h
ần
 c
ứ
n
g
 Bộ điều 
khiển thiết 
bị 
Bộ điều 
khiển thiết 
bị 
… 
Bộ điều 
khiển thiết 
bị 
Bộ điều 
khiển thiết 
bị 
Thiết bị Thiết bị … Thiết bị Thiết bị 
Hình 4.25: Cấu trúc phân hệ vào/ra 
P
T
I
T
Hệ thống file 
 179 
Các thao tác do driver thiết bị thực hiện 
Driver thiết bị chịu trách nhiệm thực hiện các công việc sau: 
- Khởi tạo thiết bị. 
- Giải mã các lệnh (lời gọi hệ thống) từ hệ điều hành. 
- Quản lý việc truyền dữ liệu vào/ra thiết bị. 
- Nhận và xử lý ngắt liên quan tới thiết bị. 
- Đảm bảo tính nhất quán giữa các cấu trúc dữ liệu do driver và các mô đun khác của hệ 
điều hành sử dụng. 
Các bước xử lý yêu cầu vào/ra do driver thực hiện. 
Quy trình xử lý yêu cầu vào/ra của driver có thể tóm tắt một cách đơn giản với các thao 
tác sau: 
- Kiểm tra tính hợp lệ của tham số trong yêu cầu vào/ra và dịch yêu cầu vào ra sang ngôn 
ngữ phù hợp với thiết bị. 
- Kiểm tra xem thiết bị có rỗi không. Nếu thiết bị bận, tiến trình đưa yêu cầu xử lý có thể bị 
phong tỏa để chờ cho tới khi thiết bị hết bận. 
- Sinh các lệnh điều khiển thiết bị: ghi vào thanh ghi tương ứng của bộ điều khiển thiết bị, 
kiểm tra độ sẵn sàng của thiết bị sau mỗi lệnh. 
- Phong tỏa và chờ đến khi bộ điều khiển thiết bị thực hiện xong lệnh. 
- Kiểm tra lỗi. 
- Trả về thông tin trạng thái và kết thúc việc xử lý. 
4.12.3. Quản lý vào/ra mức trên 
Trong phần trên, ta đã xem xét tổ chức chung phân hệ vào/ra và vai trò của driver. 
Trong phần này, ta sẽ xem xét một số chức năng khác của phân hệ vào/ra, thường do lớp trên 
của mô đun vào/ra đảm nhiệm. Các chức năng này hướng vào việc nâng cao tốc độ và độ ổn 
định vào/ra thông tin, bao gồm các công việc sau: điều độ vào/ra, đệm vào/ra với buffer và 
cache, xử lý lỗi. 
Điều độ vào/ra là xác định thứ tự xử lý các yêu cầu vào/ra sao cho đạt được các tiêu chí 
về tốc độ, tính công bằng .v.v. Ví dụ về điều độ vào/ra đã được trình bầy trong phần điều độ 
đĩa. Trong phần này ta sẽ xem xét đệm vào/ra và xử lý lỗi. 
Đệm nhớ buffer 
Đệm nhớ buffer là kỹ thuật trong đó dữ liệu truyền giữa hai thiết bị hoặc giữa một thiết 
bị với một ứng dụng được ghi tạm thời vào một vùng bộ nhớ gọi là bộ đệm buffer. Thường dữ 
liệu được lưu vào buffer khi mới đọc vào từ thiết bị (ví dụ từ bàn phím), hoặc được giữ trong 
buffer trước khi ghi ra thiết bị (ví dụ trước khi ghi ra đĩa). Buffer cũng được sử dụng khi 
truyền dữ liệu giữa hai tiến trình. 
P
T
I
T
Hệ thống file 
 180 
Đệm nhớ buffer được sử dụng để giải quyết một số vấn đề sau: 
- Sự khác nhau về tốc độ giữa thiết bị truyền và nhận dữ liệu. Ví dụ, khi cần lưu dữ liệu 
truyền qua modem vào đĩa cứng. Do modem chậm hơn đĩa nên dữ liệu từ modem được 
lưu tạm vào đệm nhớ cho tới khi đủ nhiều mới được ghi cùng nhau ra đĩa. Thông thường 
sẽ có hai đệm nhớ buffer được sử dụng trong trường hợp này. Khi đệm nhớ thứ nhất đầy, 
dữ liệu được ghi ra đĩa, trong khi đó dữ liệu nhận được từ modem tiếp tục được lưu vào 
đệm nhớ thứ hai. Khi đệm nhớ thứ hai đầy, vai trò hai đệm nhớ lại thay đổi. Cơ chế đệm 
kép như vậy được minh họa trên hình 4.26. 
Hình 4.26. Vẽ hình tương tự thế này 
- Vấn đề khác nhau về kích thước dữ liệu truyền và nhận. Khi truyền dữ liệu qua mạng, dữ 
liệu được chia thành gói. Sau đó các gói sẽ được tập hợp và sắp xếp lại theo đúng thứ tự. 
Trong lúc chờ đợi để nhận đủ các gói cần cho việc sắp xếp lại, dữ liệu được lưu trong bộ 
đệm buffer. 
Đệm nhớ cache 
Đệm nhớ cache là phần bộ nhớ tốc độ cao dùng làm bộ nhớ trung gian khi truyền dữ 
liệu giữa thiết bị nhớ tốc độ thấp với thiết bị nhớ tốc độ cao. Trước tiên, dữ liệu được truyền 
từ bộ nhớ tốc độ thấp (ví dụ đĩa cứng) vào bộ nhớ cache, sau đó được chuyển từ cache vào bộ 
nhớ tốc độ cao (ví dụ bộ nhớ trong). Khi thực hiện thao tác đọc tiếp theo, nếu phần dữ liệu 
cần đọc nằm trong cache thì dữ liệu đó được đọc từ cache, thay vì đọc từ đĩa, và do vậy sẽ 
nhanh hơn nhiều. Do nguyên lý cục bộ về thời gian, tức là thường một dữ liệu được truy cập 
lại trong tương lai gần, hoặc dữ liệu nằm gần nhau thường được truy cập trong những khoảng 
thời gian liền nhau, sử dụng cache cho phép tăng tốc độ truy cập dữ liệu. 
Như vậy, điểm khác biệt chính giữa bộ đệm cache với bộ đệm buffer là cùng một dữ 
liệu trong cache hoặc láng giềng của dữ liệu đó được truy cập nhiều lần trong khoảng thời 
Đĩa cứng 
Modem 
Đĩa cứng 
Modem 
Buffer 1 Buffer 2 Buffer 1 Buffer 2 
Đổi 
buffer 
P
T
I
T
Hệ thống file 
 181 
gian ngắn, trong khi dữ liệu trong buffer không như vậy. Tuy nhiên, trên thực tế, bộ đệm 
buffer cũng có thể dùng luôn làm bộ đệm cache. 
Spooling 
Spooling là kỹ thuật cho phép nhiều tiến trình cùng ghi thông tin ra những thiết bị chỉ có 
khả năng phục vụ một tiến trình tại một thời điểm như máy in. Khi tiến trình gửi dữ liệu ra 
máy in, hệ điều hành sẽ nhận dữ liệu này thay vì gửi trực tiếp ra máy in. Dữ liệu từ mỗi tiến 
trình được ghi vào một đệm nhớ buffer riêng, thường là một file. Khi tiến trình đã hoàn thành 
việc ghi dữ liệu ra file, file sẽ được xếp vào hàng đợi để chuyển ra máy in khi đến lượt. Như 
vậy, nhiều tiến trình có thể đồng thời thực hiện thao tác in, trong khi trên thực tế, tại mỗi thời 
điểm chỉ một file đệm được ghi ra máy in. 
Xử lý lỗi 
Thiết bị vào/ra, cũng như bản thân thao tác vào/ra dữ liệu có thể gặp nhiều dạng lỗi 
khác nhau. Có những lỗi không nghiêm trọng, có thể dễ dàng khắc phục, ví dụ lỗi không đọc 
được dữ liệu do đĩa cứng chưa quay đủ tốc độ cần thiết, hay lỗi do mạng bị quá tải nên tạm 
thời không truyền được dữ liệu. Có những lỗi nghiêm trọng hơn, ví dụ lỗi hỏng bộ điều khiển 
đĩa. 
Hệ điều hành thường được thiết kế để tự xử lý một số lỗi đơn giản. Ví dụ, khi thao tác 
đọc đĩa bị lỗi, hệ điều hành sẽ lặp lại thao tác đọc một số lần nhất định để chờ đĩa được 
chuyển sang trạng thái sẵn sàng. 
Với những lỗi nghiêm trọng hơn, hệ điều hành thường không thể tự xử lý. Cách giải 
quyết thông thường là với mỗi thao tác vào/ra, hệ điều hành trả về thông tin trạng thái. Thông 
tin này cho biết thao tác vào/ra có được thực hiện thành công hay không và một số thông tin 
cụ thể về dạng lỗi xẩy ra (nếu có). Các ứng dụng sẽ tự quyết định phải làm gì, dựa trên những 
thông tin về lỗi do lời gọi hệ thống trả lại. 
4.13. CÂU HỎI VÀ BÀI TẬP CHƯƠNG 
1. Hệ điều hành có nên nhận biết và hỗ trợ các kiểu file khác nhau không, ví dụ file 
văn bản, file chương trình, file cơ sở dữ liệu .v.v.? Trong câu trả lời hãy phân tích 
ưu nhược điểm của việc hỗ trợ và không hỗ trợ kiểu file. Lấy ví dụ việc hỗ 
trợ/không hỗ trợ kiểu file trên một hệ điều hành thông dụng. 
2. Giải thích ý nghĩa thao tác mở file và đóng file. 
3. Hãy lấy ví dụ một vài ứng dụng đòi hỏi truy cập file theo phương pháp truy cập: 1) 
tuần tự; 2) trực tiếp. 
4. Giả sử hợp hệ thống chỉ hỗ trợ thư mục một mức nhưng cho phép sử dụng tên file 
dài tùy ý. Có thể mô phỏng thư mục nhiều mức trong trường hợp này không? Hãy 
giải thích cách làm nếu câu trả lời là “có” hoặc giải thích nguyên nhân không mô 
phỏng được nếu câu trả lời là “không”. 
P
T
I
T
Hệ thống file 
 182 
5. Thay vì sử dụng ACL (Access Control List – danh sách quản lý truy cập) gắn với 
mỗi file có thể sử dụng UCL (User Control List – danh sách quản lý người dùng) 
gắn với mỗi người dùng và quy định người đó được truy cập file nào. Hãy cho biết 
trong trường nào dùng UCL ưu điểm hơn so với dùng ACL ? 
6. Giả sử hệ thống file hỗ trợ cả ba phương pháp cấp phát không gian: cấp phát khối 
liên tiếp, sử dụng danh sách kết nối, và sử dụng khối chỉ số. Cần xem xét các tiêu 
chí nào khi lựa chọn phương pháp cấp phát cho một file cụ thể. 
7. Viết chương trình đọc và in các tham số chính trong BOOT từ đĩa logic trên thẻ nhớ 
USB với FAT16 sử dụng hàm đọc sector mức thấp absread. Lưu ý: để chạy được 
absread, cần sử dụng các hệ điều hành không phân biệt chế độ đặc quyền và chế độ 
người dùng như Windows 98; có thể cài Windows 98 trên máy ảo để thực hiện bài 
tập này. 
8. Giải thích các bước và viết chương trình đọc và in nội dung 100 ô đầu tiên của bảng 
FAT trên USB, biết rằng FAT là FAT16. Chương trình cần sử dụng hàm đọc ghi 
sector mức thấp absread như ở câu trên. 
9. Giải thích các bước và viết chương trình in ra tên, phần mở rộng, ngày tháng tạo 
file, kích thước file, số thứ tự cluster đầu tiên của các file nằm trong thư mục gốc 
trên USB. Giả sử tất cả tên file là tên file ngắn (không quá 8 ký tự), FAT là FAT 16. 
Chương trình cần sử dụng hàm đọc ghi sector mức thấp absread như ở câu trên. 
P
T
I
T
Hệ thống file 
 183 
TÀI LIỆU THAM KHẢO 
1. A. Silbeschatz, P.B. Galvin, G. Gagne. Operating system concepts. 9
th
 edition. John Wiley 
& Sons. 2013. 
2. W. Stallings. Operating Systems: Internals and Design Principles. 7
th
 edition. Prentice Hall 
2012. 
3. A.S. Tanenbaum. Modern operating systems. 3rd edition. Prentice Hall 2008. 
4. Nguyễn Thanh Tùng. Giáo trình Hệ điều hành. ĐHBK Hà nội 1999. 
5. Hà Quang Thụy. Giáo trình Nguyên lý các hệ điều hành. In lần thứ ba. NXB KHKT 2009. 
6. C. Crowley. Operating systems: A design-oriented approach. Irwin Professional Publishing 
1996. 
7. Từ Minh Phương. Bài giảng hệ điều hành. Học viện Công nghệ bưu chính viễn thông 2009. 
P
T
I
T

File đính kèm:

  • pdfGiáo trình Hệ điều hành - Từ Minh Phương.pdf