Bài giảng Nguyên lý hệ điều hành

Mục lục

Chương 1. TỔNG QUAN VỀ HỆ ĐIỀU HÀNH .5

1.1. KHÁI NIỆM VỀ HỆ ĐIỀU HÀNH.5

1.2. PHÂN LOẠI HỆ ĐIỀU HÀNH.6

1.2.1. Hệ thống xử lý theo lô .6

1.2.2. Hệ thống xử lý theo lô đa chương .6

1.2.3. Hệ thống chia sẻ thời gian.7

1.2.4. Hệ thống song song.7

1.2.5. Hệ thống phân tán.8

1.2.6. Hệ thống xử lý thời gian thực.8

Chương 2. LUỒNG VÀ TIẾN TRÌNH.10

2.1. NHU CẦU XỬ LÝ ĐỒNG THỜI.10

2.1.1. Tăng hiệu suất sử dụng CPU .10

2.1.2. Tăng tốc độ xử lý .10

2.2. KHÁI NIỆM TIẾN TRÌNH(PROCESS) VÀ MÔ HÌNH ĐA TIẾN TRÌNH

(MULTIPROCESS).10

2.3. KHÁI NIỆM LUỒNG (THREAD) VÀ MÔ HÌNH ĐA LUỒNG

(MULTITHREAD).11

2.3.1. Nguyên lý chung: .12

2.3.2. Phân bổ thông tin lưu trữ.12

2.3.3. Kernel thread và user thread .13

Chương 3. LẬP LỊCH TIẾN TRÌNH.14

3.1. Tổ chức quản lý tiến trình .14

3.1.1. Các trạng thái của tiến trình.14

3.1.2. Chế độ xử lý của tiến trình.15

3.1.3. Cấu trúc dữ liệu khối quản lý tiến trình.15

3.1.4. Thao tác trên tiến trình.16

3.1.4.1. Tạo lập tiến trình.16

3.1.4.2. Kết thúc tiến trình.17

3.1.5. Cấp phát tài nguyên cho tiến trình.17

3.2. Lập lịch tiến trình.18

3.2.1. Giới thiệu.19

3.2.1.1. Mục tiêu lập lịch.19

3.2.1.2. Các đặc điểm của tiến trình.19

3.2.1.3. Điều phối không độc quyền và điều phối độc quyền

(preemptive/nopreemptive).20

3.2.2.1. Các danh sách sử dụng trong quá trình lập lịch.21

3.2.2.2. Các cấp độ lập lịch.22

3.2.3. Các thuật toán lập lịch.23

3.2.3.1. Chiến lược FIFO.23

3.2.3.2. Lập lịch xoay vòng (Round Robin).24

3.2.3.3. Lập lịch với độ ưu tiên.25

3.2.3.4. Chiến lược công việc ngắn nhất (Shortest-job-first SJF).26

3.2.3.5. Chiến lược điều phối với nhiều mức độ ưu tiên.27

3.2.3.6. Chiến lược lập lịch Xổ số (Lottery).28

Chương 4. TRUYỀN THÔNG VÀ ĐỒNG BỘ TIẾN TRÌNH .29

Faculty Of IT 1 KMA

Bài giảng: Nguyên Lý Hệ Điều Hành

4.1. LIÊN LẠC TIẾN TRÌNH .29

4.1.1. Nhu cầu liên lạc tiến trình.29

4.1.2. Các vấn đề nảy sinh trong việc liên lạc tiến trình.29

4.2. Các Cơ Chế Thông Tin Liên lạc.30

4.2.1. Tín hiệu (Signal).30

4.2.2. Pipe.31

4.2.3. Vùng nhớ chia sẻ.32

4.2.4. Trao đổi thông điệp (Message).32

4.2.5. Sockets.33

4.3. Nhu cầu đồng bộ hóa (synchronisation).34

4.3.1. Yêu cầu độc quyền truy xuất (Mutual exclusion) .34

4.3.2. Yêu cầu phối hợp (Synchronization).34

4.3.3. Bài toán đồng bộ hoá .35

4.3.3.1. Vấn đề tranh đoạt điều khiển (race condition).35

4.3.3.2. Miền găng (critical section).35

4.4. CÁC GIẢI PHÁP ĐỒNG BỘ HOÁ.37

4.4.1. Giải pháp « busy waiting ».37

4.4.1.1. Sử dụng các biến cờ hiệu(simaphore).37

4.4.1.2. Sử dụng việc kiểm tra luân phiên .37

4.4.1.3. Giải pháp của Peterson .38

4.4.1.4. Cấm ngắt: .38

4.4.1.5. Chỉ thị TSL (Test-and-Set) .39

4.4.2. Các giải pháp « SLEEP and WAKEUP ».39

4.4.2.1. Semaphore.41

4.4.2.2. Monitors.42

4.4.2.3. Trao đổi thông điệp.44

Chương 5. VẤN ĐỀ KHOÁ CHẾT (DEADLOCK).46

5.1. Mô hình hệ thống .46

5.2. Đặc điểm deadlock .47

5.2.1. Những điều kiện cần thiết gây ra deadlock .47

5.2.2. Đồ thị cấp phát tài nguyên .47

5.3. Các phương pháp xử lý deadlock .50

5.4. Ngăn chặn deadlock .51

5.4.1. Loại trừ hỗ tương .51

5.4.2. Giữ và chờ cấp thêm tài nguyên .51

5.4.3. Không đòi lại tài nguyên từ quá trình đang giữ chúng .52

5.4.4. Tồn tại chu trình trong đồ thị cấp phát tài nguyên .53

5.5. Tránh deadlock .53

5.5.1. Trạng thái an toàn .54

5.5.2. Giải thuật đồ thị cấp phát tài nguyên .54

5.5.3. Giải thuật của Banker .56

5.5.3.1. Giải thuật an toàn .57

5.5.3.2. Giải thuật yêu cầu tài nguyên .58

Chương 6: QUẢN LÝ BỘ NHỚ TRONG.59

6.1. Ngữ cảnh liên kết bộ nhớ.59

6.2. Không gian địa chỉ lôgic và không gian địa chỉ vật lý.60

6.3. Cấp phát liên tục.60

6.3.1. Mô hình Linker_Loader.60

6.3.2. Mô hình Base &Bound.61

6.4. Cấp phát không liên tục.63

6.4.1. Phân đoạn (Segmentation) .63

6.4.2. Phân trang ( Paging).66

6.4.3. Phân đoạn kết hợp phân trang (Paged segmentation).72

6.5. Bộ nhớ ảo.74

6.5.1. Cơ chế bộ nhớ ảo.74

6.5.1.1. Định nghĩa.74

6.5.1.2. Cài đặt bộ nhớ ảo.75

6.5.2. Thay thế trang.77

6.5.2.1. Sự thi hành phân trang theo yêu cầu.77

6.5.2.2. Các thuật toán thay thế trang.78

Chương 7. HỆ THỐNG QUẢN LÝ TẬP TIN.83

7.1. CÁC KHÁI NIỆM CƠ BẢN.83

7.1.1. Bộ nhớ ngoài .83

7.1.2. Tập tin và thư mục .83

7.1.3. Hệ thống quản lý tập tin.83

7.2. MÔ HÌNH TỔ CHỨC VÀ QUẢN LÝ CÁC TẬP TIN.84

7.2.1. Mô hình .84

7.2.1.1. Tập tin.84

7.2.1.2. Thư mục: .87

7.2.2. Các chức năng .89

7.2.2.1. Tập tin.89

7.2.2.2. Thư mục.89

7.3. CÁC PHƯƠNG PHÁP CÀI ĐẶT HỆ THỐNG QUẢN LÝ TẬP TIN.91

7.3.1. Bảng quản lý tệp tin, thư mục.91

7.3.1.1. Khái niệm .91

7.3.1.2. Cài đặt.91

7.3.2. Bảng phân phối vùng nhớ.92

7.3.2.1. Khái niệm .92

7.3.2.2. Các phương pháp.92

7.3.3. Tệp tin chia sẻ.94

7.3.4. Độ an toàn của hệ thống quản lý tệp tin.95

7.3.4.1. Quản lý khối bị hỏng .95

7.3.4.2. Sao lưu.96

7.3.4.3. Tính không đổi của hệ thống tệp tin .96

Chương 8. HỆ THỐNG QUẢN LÝ NHẬP/XUẤT.98

8.1. KHÁI NIỆM VỀ HỆ THỐNG QUẢN LÝ NHẬP/XUẤT.98

8.2. PHẦN CỨNG NHẬP/XUẤT.99

8.2.1. Thiết bị I/O .99

8.2.2. Tổ chức của chức năng I/O .99

8.2.3. Bộ điều khiển thiết bị .100

8.2.4. DMA (Direct Memory Access) .101

8.3. PHẦN MỀM NHẬP/XUẤT.102

Faculty Of IT 3 KMA

Bài giảng: Nguyên Lý Hệ Điều Hành

8.3.1. Kiểm soát ngắt .102

8.3.2. Điều khiển thiết bị (device drivers) .103

8.3.3. Phần mềm nhập/xuất độc lập thiết bị .103

8.3.4. Phần mềm nhập/xuất phạm vi người sử dụng .104

Chương 9. GIỚI THIỆU MỘT SỐ HỆ THỐNG I/O.105

9.1. HỆ THỐNG I/O ĐĨA.105

9.1.1. Phần cứng đĩa.105

9.1.2. Các thuật toán đọc đĩa .105

9.1.2.1. Lập lịch FCFS.106

9.1.2.2. Lập lịch SSTF (shortest-seek-time-first).106

9.1.2.3. Lập lịch SCAN.106

9.1.2.4. Lập lịch C-SCAN.107

9.1.2.5. Lập lịch LOOK.107

9.1.2.6. Lựa chọn thuật toán lập lịch:.108

9.1.3. Quản lý lỗi.108

9.1.4. RAM Disks.108

9.1.5. Interleave .109

9.2. HỆ THỐNG I/O CHUẨN (terminals).110

9.2.1. Phần cứng terminal.110

9.2.2. Terminal ánh xạ bộ nhớ.111

9.2.3. Phần mềm nhập.112

9.2.4. Phần mềm xuất.113

9.3. CÀI ĐẶT ĐỒNG HỒ.114

9.3.1. Phần cứng đồng hồ.114

9.3.2. Phần mềm đồng hồ .115

Chương 10. BẢO VỆ VÀ AN TOÀN HỆ THỐNG.117

10.1. Mục tiêu bảo vệ hệ thống (Protection).117

10.2. Miền bảo vệ (Domain of Protection).117

10.2.1. Khái niệm.117

10.2.2. Cấu trúc của miền bảo vệ .118

10.3. Ma trận quyền truy xuất ( Access matrix).119

pdf121 trang | Chuyên mục: Hệ Điều Hành | Chia sẻ: dkS00TYs | Lượt xem: 3782 | Lượt tải: 1download
Tóm tắt nội dung Bài giảng Nguyên lý hệ điều hành, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
i nào giá trị bằng 0, bộ điều khiển đồng hồ sẽ yêu cầu bộ lập 
lịch thiết lập giá trị cho một tiến trình khác.
Chức năng thứ ba là kế toán việc sử dụng CPU. Cách thức chính xác nhất là sử 
dụng một bộ timer thứ hai, khác với timer hệ thống. Bộ timer thứ hai khởi động khi tiến 
trình bắt đầu và khi tiến trình kết thúc, timer này sẽ cho biết thời gian tiến trình đã thực 
hiện.
Phần lớn hệ thống cần thiết thiết lập timer. Gọi là watchdog timer. Ví dụ, để sử 
dụng đĩa mềm, hệ thống phải khởi động motor và chờ khoảng 500msec đạt được tốc độ. 
Vì vậy, ý tưởng tốt là phải sử dụng watchdog timer để chờ cho thao tác I/O tiếp theo, vào 
khoảng 3 giây, không tắt motor.
Faculty Of IT 116 KMA
Bài giảng: Nguyên Lý Hệ Điều Hành
CHƯƠNG 10. BẢO VỆ VÀ AN TOÀN HỆ THỐNG
An toàn và bảo vệ hệ thống là chức năng khoông thể thiếu của các hệ điều hành 
hiện đại. Trong bài học này, chúng ta sẽ làm quen với các khái niệm về tổ chức an toàn 
hệ thống, cũng như các cơ chế bảo vệ hỗ trợ việc triển khai các chiến lược này.
10.1. Mục tiêu bảo vệ hệ thống (Protection)
Mục tiêu của việc bảo vệ hệ thống là:
- Bảo vệ chống lỗi của tiến trình : khi có nhiều tiến trình cùng hoạt động, lỗi của 
một tiến trình j phải được ngăn chặn không cho lan truyền trên hệ thống làm ảnh 
hưởng đến các tiến trình khác. Đặc biệt , qua việc phát hiện các lỗi tiềm ẩn trong 
các thành phần của hệ thống có thể tăng cường độ tin cậy hệ thống ( reliability) .
- Chống sự truy xuất bất hợp lệ : Bảo đảm các bộ phận tiến trình sử dụng tài 
nguyên theo một cách thức hợp lệ được qui định cho nó trong việc khai thác các 
tài nguyên này .
Vai trò của bộ phận bảo vệ trong hệ thống là cung cấp một cơ chế để áp dụng các 
chiến lược quản trị việc sử dụng tài nguyên . Cần phân biệt khái niệm cơ chế và chiến 
lược:
- Cơ chế : xác định làm thế nào để thực hiện việc bảo vệ, có thể có các cơ chế phần 
mềm hoặc cơ chế phần cứng. 
- Chiến lược : quyết định việc bảo vệ được áp dụng như thế nào : những đối tượng 
nào trong hệ thống cần được bảo vệ, và các thao tác thích hợp trên các đối tượng 
này 
Để hệ thống có tính tương thích cao , cần phân tách các cơ chế và chiến lược được sử 
dụng trong hệ thống. Các chiến lược sử dụng tài nguyên là khác nhau tùy theo ứng dụng, 
và thường dễ thay đổi . Thông thường các chiến lược được lập trình viên vận dụng vào 
ứng dụng của mình để chống lỗi truy xuất bất hợp lệ đến các tài nguyên, trong khi đó hệ 
thống cung cấp các cơ chế giúp người sử dụng có thể thực hiện được chiến lược bảo vệ 
của mình. 
10.2. Miền bảo vệ (Domain of Protection)
10.2.1. Khái niệm
Một hệ thống máy tính được xem như một tập các đối tượng (objects). Một đối 
tượng có thể là một bộ phận phần cứng ( CPU, bộ nhớ, ổ đĩa...) hay một thực thể phần 
mềm ( tập tin, chương trình, semaphore...). Mỗi đối tượng có một định danh duy nhất để 
phân biệt với các đối tượng khác trong hệ thống, và chỉ được truy xuất đến thông qua các 
thao tác được định nghĩa chặt chẽ và được qui định ngữ nghĩa rõ ràng. Các thao tác có thể 
thực hiện được trên một đối tượng được xác định cụ thể tùy vào đối tượng.
Để có thể kiểm soát được tình hình sử dụng tài nguyên trong hệ thống, hệ điều 
hành chỉ cho phép các tiến trình được truy xuất đến các tài nguyên mà nó có quyền sử 
dụng, hơn nữa tiến trình chỉ được truy xuất đến các tài nguyên cần thiết trong thời điểm 
Faculty Of IT 117 KMA
Bài giảng: Nguyên Lý Hệ Điều Hành
hiện tại để nó hoàn thành tác vụ (nguyên lý need-to-know) nhăm hạn chế các lỗi truy 
xuất mà tiến trình có thể gây ra trong hệ thống.
Mỗi tiến trình trong hệ thống đều hoạt động trong một miền bảo vệ (protection 
domain) nào đó. Một miền bảo vệ sẽ xác định các tài nguyên ( đối tượng) mà những tiến 
trình hoạt động trong miền bảo vệ này có thể sử dụng, và các thao tác hợp lệ các tiến 
trình này có thể thực hiện trên những tài nguyên đó.
Ví dụ : 
10.2.2. Cấu trúc của miền bảo vệ 
Các khả năng thao tác trên một đối tượng được gọi là quyền truy xuất (access 
right). Một miền bảo vệ là một tập các quyền truy xuất, mỗi quyền truy xuất được định 
nghĩa bởi một bộ hai thứ tự .
Các miền bảo vệ khác nhau có thể giao nhau một số quyền truy xuất :
Hình 10.2.2-1. Hệ thống với 3 miền bảo vệ
Mối liên kết giữa một tiến trình và một miền bảo vệ có thể tĩnh hay động :
- Liên kết tĩnh : trong suốt thời gian sống của tiến trình, tiến trình chỉ hoạt động 
trong một miền bảo vệ . Trong trường hợp tiến trình trải qua các giai đoạn xử lý 
khác nhau, ở mỗi giai đoạn tiến trình có thể thao tác trên những tập tài nguyên 
khác nhau bằng các thao tác khác nhau. Tuy nhiên, nếu sử dụng liên kết tĩnh, rõ 
ràng là ngay từ đầu miền bảo vệ đã phải đặc tả tất cả các quyền truy xuất qua các 
giai đoạn cho tiến trình , điều này có thể khiến cho tiến trình có dư quyền trong 
một giai đoạn nào đó, và vi phạm nguyên lý need-to-know. Để có thể tôn trọng 
nguyên lý này, khi đó cần phải có khả năng cập nhật nội dung miền bảo vệ để có 
thể phản ánh các quyền tối thiểu của tiến trình trong miền bảo vệ tại một thời 
điểm! 
- Liên kết động : cơ chế này cho phép tiến trình chuyển từ miền bảo vệ này sang 
miền bảo vệ khác trong suốt thời gian sống của nó. Để tiếp tục tuân theo nguyên 
lý need-to-know, thay vì sửa đổi nội dung của miền bảo vệ, có thể tạo ra các 
miền bảo vệ mới với nội dung thay đổi qua từng giai đoạn xử lý của tiến trình, và 
chuyển tiến trình sang hoạt động trong miền bảo vệ phù hợp theo từng thời điểm. 
Một miền bảo vệ có thể được xây dựng cho:
- Một người sử dụng : trong trường hợp này, tập các đối tượng được phép truy xuất 
phụ thuộc vào định danh của người sử dụng, miền bảo vệ được chuyển khi thay 
đổi người sử dụng.
- Một tiến trình : trong trường hợp này, tập các đối tượng được phép truy xuất phụ 
thuộc vào định danh của tiến trình, miền bảo vệ được chuyển khi quyền điều 
khiển được chuyển sang tiến trình khác.
Faculty Of IT 118 KMA
Bài giảng: Nguyên Lý Hệ Điều Hành
- Một thủ tục : trong trường hợp này, tập các đối tượng được phép truy xuất là các 
biến cục bộ được định nghĩa bên trong thủ tục, miền bảo vệ được chuyển khi thủ 
tục được gọi.
10.3. Ma trận quyền truy xuất ( Access matrix)
Một cách trừu tượng, có thể biểu diễn mô hình bảo vệ trên đây như một ma trận 
quyền truy xuất ( access matrix). Các dòng của ma trận biễu diễn các miền bảo vệ và các 
cột tương ứng với các đối tượng trong hệ thống. Phần tử acess[i,j] của ma trận xác định 
các quyền truy xuất mà một tiến trình hoạt động trong miền bảo vệ Di có thể thao tác trên 
đối tượng Oj. 
object
Domain
F1 F2 F3 Máy in
D1 đọc đọc 
D2 in
D3 đọc xử lý 
D4 đọc
ghi
 đọc
Ghi
Hình 10.3-1. Ma trận quyền truy xuất
Cơ chế bảo vệ được cung cấp khi ma trận quyền truy xuất được cài đặt ( với đầy đủ các 
thuộc tính ngữ nghĩa đả mô tả trên lý thuyết), lúc này người sử dụng có thể áp dụng các 
chiến lược bảo vệ bằng cách đặc tả nội dung các phần tử tương ứng trong ma trận _ xác 
định các quyền truy xuất ứng với từng miền bảo vệ , và cuối cùng, hệ điều hành sẽ quyết 
định cho phép tiến trình hoạt động trong miền bảo vệ thích hợp.
Ma trận quyền truy xuất cũng cung cấp một cơ chế thích hợp để định nghĩa và thực hiện 
một sự kiểm soát nghiêm nhặt cho cả phương thức liên kết tĩnh và động các tiến trình với 
các miền bảo vệ :
Có thể kiểm soát việc chuyển đổi giữa các miền bảo vệ nếu quan niệm miền bảo vệ 
cũng là một đối tượng trong hệ thống, và bổ sung các cột mô tả cho nó trong ma trận 
quyền truy xuất. 
Khi đó tiến trình được phép chuyển từ miền bảo vệ Di sang miền bảo vệ Dj nếu phần tử 
access(i,j) chứa đựng quyền « chuyển » ( switch). 
object
domain
F1 F2 F3 Máy in D1 D2 D3 D4
D1 đọc đọc chuyển 
D2 in chuyển chuyển 
D3 đọc xử lý 
D4 đọc
ghi
 đọc
ghi
 chuyển 
Hình 10.3-2. Ma trận quyền truy xuất với domain là một đối tượng
Faculty Of IT 119 KMA
Bài giảng: Nguyên Lý Hệ Điều Hành
Có thể kiểm soát việc sửa đổi nội dung ma trận (thay đổi các quyền truy xuất trong 
một miền bảo vệ) nếu quan niệm bản thân ma trận cũng là một đối tượng.
Các thao tác sửa đổi nội dung ma trận được phép thực hiện bao gồm : sao chép quyền 
( copy), chuyển quyền ( transfer), quyền sở hữu (owner), và quyền kiểm soát (control)
- Copy: nếu một quyền truy xuất R trong access[i,j] được đánh dấu là R* thì có thể 
sao chép nó sang một phần tử access[k,j] khác ( mở rộng quyền truy xuất R trên 
cùng đối tượng Oj nhưng trong miền bảo vệ Dk ). 
- Transfer : nếu một quyền truy xuất R trong access[i,j] được đánh dấu là R+ thì có 
thể chuyển nó sang một phần tử access[k,j] khác ( chuyển quyền truy xuất R+ 
trên đối tượng Oj sang miền bảo vệ Dk ). 
- Owner : nếu access[i,j] chứa quyền truy xuất owner thì tiến trình hoạt động trong 
miền bảo vệ Di có thể thêm hoặc xóa các quyền truy xuất trong bất kỳ phần tử 
nào trên cột j (có quyền thêm hay bớt các quyền truy xuất trên đối tượng Oj trong 
những miền bảo vệ khác). 
- Control : nếu access[i,j] chứa quyền truy xuất control thì tiến trình hoạt động 
trong miền bảo vệ Di có thể xóa bất kỳ quyền truy xuất nào trong các phần tử trên 
dòng j (có quyền bỏ bớt các quyền truy xuất trong miền bảo vệ Dj).
object
domain
F1 
F2
F3
D1 xử lý ghi+
D2 xử lý đọc* xử lý
D3 xử lý 
(a)
object
domain
F1 
F2
F3
D1 xử lý 
D2 xử lý đọc* xử lý
D3 xử lý đọc ghi+
(b)
Hình 10.3-3. Ma trận quyền truy xuất với quyền copy , transfer (a) trước, (b) sau cập 
nhật
object
domain
F1 
F2
F3
D1 owner 
xử lý
 Ghi
D2 đọc*
owner 
đọc*
owner 
ghi*
Faculty Of IT 120 KMA
Bài giảng: Nguyên Lý Hệ Điều Hành
D3 xử lý 
(a)
object
domain
F1 
F2
F3
D1 owner 
xử lý
D2 owner 
đọc*
ghi*
đọc*
owner 
ghi*
D3 ghi 
(b)
Hình 10.3-4. Ma trận quyền truy xuất với quyền owner (a) trước, (b) sau cập nhật
object
domain
F1 F2 F3 Máy in D1 D2 D3 D4
D1 đọc đọc chuyển 
D2 in chuyển control 
chuyển 
D3 đọc xử lý 
D4 ghi Ghi chuyển 
Hình 10.3-5. Ma trận quyền truy xuất đã sửa đổi nội dung so với H5.3 nhờ quyền control
Faculty Of IT 121 KMA

File đính kèm:

  • pdfBài giảng Nguyên lý hệ điều hành.pdf