Mục tiêu của hệ điều hành là cung cấp một môi trường thuận lợi để người dùng d dàng thực hiện các chương trình ứng dụng của họ trên máy tính và khai thác triệt để các chức năng phần cứng
Trang 2LỜI NÓI ĐẦU
Tài liệu được biên soạn chủ yếu dựa trên kiến thức tích lũy trong giảng dạy nhiều năm về môn học của tác giả và cũng được tham khảo từ các nguồn về lý thuyết hệ điều hành và nguyên lý hệ điều hành của các trường Đại học Huế, Đại học Cần Thơ…
Tổng quan:
Bài giảng giới thiệu về các thế hệ hệ điều hành, các thành phần của hệ điều hành, chức năng của hệ điều hành, các dịch vụ mà hệ điều hành cung cấp Sau đó nghiên cứu chi tiết chức năng các thành phần bên trong hệ điều hành: Quản lý tiến trình, Quản lý
bộ nhớ, Đồng bộ hóa tiến trình, Quản lý Deadlock, Quản lý và cài đặt hệ thống tập tin, Quản lý đĩa
Mục tiêu:
Kiến thức:
- Hiểu được vai trò của hệ điều hành và cơ chế hoạt động của hệ điều hành
- Hiểu các kiến trúc thiết kế hệ điều hành
- Hiểu các chiến lược trong việc thiết kế các hệ điều hành hiện đại
- Biết những vấn đề phát sinh trong quá trình thiết kế hệ điều hành cũng như những tiếp cận khác nhau được dùng để phân tích và giải quyết những vấn đề
- Rèn luyện tư duy giải thuật, kỹ năng lập trình kỹ thuật mô phỏng
- Kỹ năng làm việc nhóm, tự học, tự nghiên cứu
Trang 3Thái độ:
- Nhận thức đúng đắn về phía người thiết kế hệ điều hành trong hệ thống máy tính
- Nâng cao ý thức tự học, tự nghiên cứu để mở rộng kiến thức
Nội dung: Tài liệu bao gồm có 5 chương:
Chương 1: Tổng quan về hệ điều hanh
Chương 2: Quản lý tiến trình
Chương 3: Quản lý bộ nhớ
Chương 4: Quản lý tập tin và đĩa
Chương 5: Quản lý hệ thống nhập/xuất
Trang 4MỤC LỤC
LỜI NÓI ĐẦU 1
MỤC LỤC 3
DANH MỤC THUẬT NGỮ VIẾT TẮT 6
CHƯ NG 1: TỔNG QU N VỀ HỆ ĐIỀU HÀNH 8
1.1 MỤC TIÊU 8
1.2 KHÁI NI M VỀ H ĐIỀU HÀNH 8
1.3 CHỨC N NG H ĐIỀU HÀNH 10
1.4 PH N LOẠI H ĐIỀU HÀNH 12
1.4.1 Hệ điều hành xử lý theo lô đơn chương 12
1.4.2 Hệ thống xử lý theo lô đa chương 14
1.4.3 Hệ thống chia s thời gian 15
1.4.4 Hệ thống đa xử lý hệ thống song song 15
1.4.5 Hệ thống phân tán 17
1.4.6 Hệ thống xử lý thời gian thực 18
1.4.7 Hệ xách tay 18
1.5 L CH S PHÁT TRIỂN CỦA H ĐIỀU HÀNH 19
1.5.1 Thế hệ 1 1945 – 1955) 19
1.5.2 Thế hệ 2 1955 – 1965) 20
1.5.3 Thế hệ 3 1965 – 1980) 20
1.5.4 Thế hệ 4 1980-nay ) 21
1.6 CẤU TR C CỦA H ĐIỀU HÀNH 21
1.6.1 Các thành phần bên trong hệ điều hành 21
1.6.2 Các dịch vụ của hệ điều hành 26
1.6.3 Lời gọi hệ thống 27
1.6.4 Cấu trúc hệ điều hành 28
1.7 MỘT S H ĐIỀU HÀNH HI N ĐẠI 38
1.7.1 Hệ điều hành Windows95 38
1.7.2 Hệ điều hành Windows 2000 39
1.7.3 Hệ điều hành Linux 40
1.7.4 Hệ điều hành Windows 7 41
1.7.5 Hệ điều hành Windows 8 42
1.7.6 Hệ điều hành Android 42
1.8 TÓM TẮT 43
Câu hỏi ôn tập 44
TÀI LI U THAM KHẢO 44
CHƯ NG 2: QUẢN L TIẾN TR NH 45
2.1 MỤC TIÊU 45
2.2 TỔNG QUAN VỀ TIẾN TRÌNH 45
2.2.1 Nhu cầu xử lý đồng hành 45
2.2.2 Khái niệm tiến trình 46
2.2.3 Phân loại tiến trình 49
2.2.4 Tiểu trình Thread và mô hình đa tiểu trình Multithread 51
2.3 TỔ CHỨC QUẢN LÝ TIẾN TRÌNH 54
2.3.1 Các trạng thái của tiến trình 54
2.3.2 Chế độ xử lý của tiến trình 60
Trang 52.3.3 Cấu trúc dữ liệu khối quản lý tiến trình 61
2.4 THAO TÁC TRÊN TIẾN TRÌNH 62
2.4.1 Tạo lập tiến trình 63
2.4.2 Kết thúc tiến trình 64
2.4.3 Khi tiến trình thay đổi trạng thái 64
2.5 CẤP PHÁT TÀI NGUYÊN CHO TIẾN TRÌNH 65
2.6 Đ NH THỜI BIỂU CPU 66
2.6.1 Giới thiệu 67
2.6.2 Tổ chức định thời biểu 70
2.6.3 Các chiến lược định thời biểu CPU 75
2.7 ĐỒNG BỘ HÓA TIẾN TRÌNH 87
2.7.1 Liên lạc giữa các tiến trình 87
2.7.2 Các cơ chế thông tin liên lạc 88
2.7.3 Nhu cầu đồng bộ hóa synchronisation 95
2.7.4 Tài nguyên găng và đoạn găng 96
2.7.5 Đồng bộ tiến trình qua đoạn găng 102
2.8 TẮC NGHẼN VÀ CH NG TẮC NGHẼN 125
2.8.1 Khái niệm tắc nghẽn 125
2.8.2 Đặc điểm của Deadlock 128
2.8.3 Các phương pháp xử lý deadlock 134
2.9 TÓM TẮT 151
Câu hỏi ôn tập 153
Bài tập 156
TÀI LI U THAM KHẢO 160
CHƯ NG 3: QUẢN L BỘ NHỚ 161
3.1 MỤC TIÊU 161
3.2 NHI M VỤ QUẢN LÝ BỘ NHỚ 161
3.3 KIẾN THỨC NỀN 164
3.3.1 Một chương trình qua nhiều bước xử lý 164
3.3.2 Không gian địa chỉ luận lý và không gian địa chỉ vật lý 166
3.3.3 Bộ quản lý bộ nhớ MMU 167
3.3.4 Phủ lắp Overlay 167
3.3.5 Hoán vị 168
3.4 QUẢN LÝ BỘ NHỚ CHÍNH 170
3.4.1 Bộ nhớ cấp phát liên tục 170
3.4.2 Cấp phát không liên tục 182
3.5 QUẢN LÝ BỘ NHỚ ẢO 202
3.5.1 Khái niệm bộ nhớ ảo 203
3.5.2 Cài đặt bộ nhớ ảo 204
3.5.3 Kỹ thuật bộ nhớ ảo 208
3.6 TÓM TẮT 222
Câu hỏi ôn tập 224
Bài Tập 225
TÀI LI U THAM KHẢO 230
CHƯ NG 4: QUẢN L TẬP TIN VÀ ĐĨ 231
4.1 MỤC TIÊU 231
4.2 TỔNG QUAN VỀ QUẢN LÝ TẬP TIN VÀ ĐĨA 232
4.2.1 Tập tin và hệ thống quản lý tập tin 232
Trang 64.2.2 Bảng danh mục và tập tin chia s 235
4.2.3 Quản lý không gian đĩa 238
4.2.4 Quản lý các block chứa tập tin trên đĩa 241
4.2.5 An toàn trong quản lý tập tin 246
4.2.6 Hiệu suất hệ thống tập tin 251
4.3 MỘT S KHÁI NI M DÙNG TRONG QUẢN LÝ ĐĨA 252
4.4 CÁC ĐIỀU KHIỂN H TH NG TẬP TIN 255
4.5 CÁC H TH NG TẬP TIN ĐƯỢC S DỤNG TRÊN CÁC H ĐIỀU HÀNH HI N NAY 257 4.5.1 FAT12, FAT16, FAT32 257
4.5.2 NTFS 258
4.5.3 CDFS 259
4.5.4 UDF 259
4.6 TỔ CHỨC ĐĨA CỦA MS-DOS 259
4.6.1 FDISK 259
4.6.2 Tổ chức logic của đĩa 261
4.7 QUẢN LÝ TẬP TIN TRÊN ĐĨA CỦA MS-DOS 265
4.7.1 Boot sector 266
4.7.2 File Allocation Table (FAT) 268
4.7.3 Root Directory Bảng thư mục gốc 274
4.7.4 Thư mục con Subdirectory 279
4.8 TỔ CHỨC LƯU TRỮ TẬP TIN TRÊN ĐĨA CD_ROM 281
4.8.1 Hệ thống tập tin ISO 9660 282
4.8.2 Mở rộng Rock Ridge 283
4.8.3 Mở rộng Joliet 283
4.9 TÓM TẮT 284
Câu hỏi ôn tập 286
Bài tập 286
TÀI LI U THAM KHẢO 287
CHƯ NG 5: QUẢN L HỆ THỐNG NHẬP/XUẤT 291
5.1 MỤC TIÊU 291
5.2 CÁC KHÁI NI M CƠ BẢN 291
5.3 PHẦN CỨNG NHẬP/XUẤT 292
5.3.1 Thiết bị I/O 292
5.3.2 Tổ chức của chức năng I/O 293
5.4 GIAO DI N NHẬP/XUẤT ỨNG DỤNG 299
5.5 H TH NG CON NHẬP/XUẤT CỦA NH N KERNEL I/O SUBSYTEM 302
5.5.1 Định thời biểu nhập/xuất 302
5.5.2 Vùng đệm 303
5.5.3 Vùng lưu trữ 303
5.5.4 Vùng chứa 304
5.5.5 Quản lý lỗi 304
5.5.6 Cấu trúc dữ liệu nhân 305
5.6 CHUYỂN NHẬP/XUẤT TỚI HOẠT ĐỘNG PHẦN CỨNG 305
5.7 N NG LỰC 308
5.8 TÓM TẮT 310
Câu hỏi ôn tập 311
Trang 7TÀI LI U THAM KHẢO 311
D NH MỤC THUẬT NGỮ VIẾT TẮT
quản lý các tập tin, thƣ mục trên các đĩa CD_ROM
một tiến trình
MS-DOS Microsoft Disk Operrating System Hệ điều hành MS-DOS
Trang 8Program Counter Nghĩa khác: Bộ đếm chương trình
nguyên
đoạn
STLR Segment Table Length Register Thanh ghi giới hạn của bảng phân
đoạn
quản lý các đĩa từ/quang, chủ yếu
là các đĩa DVD_ROM
Trang 9CHƯ NG 1: TỔNG QU N VỀ HỆ ĐIỀU HÀNH 1.1 MỤC TIÊU
Sau khi học xong chương này, người học nắm được các kiến thức sau:
- Hiểu chức năng của hệ điều hành trong hệ thống máy tính
- Biết phân loại hệ điều hành
- Biết hệ điều hành phát triển qua nhiều giai đoạn
- Các thành phần bên trong hệ điều hành
- Các dịch vụ mà hệ điều hành cung cấp
- Biết được cấu trúc các hệ điều hành
Bài học này cung cấp cho chúng ta một cái nhìn tổng quát về những nguyên lý cơ bản của hệ điều hành Chúng ta bắt đầu với việc xem x t mục tiêu và các chức năng của hệ điều hành, sau đó phân loại chúng và tìm hiểu quá trình phát triển hệ điều hành qua từng giai đoạn Phân biệt các thành phần hệ thống và các thành phần bên trong hệ điều hành Thông qua các giai đoạn khác nhau chúng ta sẽ thấy cách thức mà những thành phần của hệ điều hành được cải tiến cũng như các dịch vụ mà hệ điều hành cung cấp, cuối cùng là khảo sát các cấu trúc khác nhau của các hệ điều hành
1.2 KHÁI NIỆM VỀ HỆ ĐIỀU HÀNH
Hệ điều hành là một chương trình hệ thống hay một hệ chương trình đóng vai tr trung gian giữa người dùng máy tính và phần cứng máy tính Mục tiêu của hệ điều hành là cung cấp một môi trường thuận lợi để người dùng d dàng thực hiện các chương trình ứng dụng của họ trên máy tính và khai thác triệt để các chức năng phần cứng máy tính
Hệ điều hành là một phần quan trọng của hầu hết các hệ thống máy tính Một hệ thống máy tính thường được chia làm bốn phần chính: phần cứng, hệ điều hành, các chương trình ứng dụng và người dùng (user)
Phần cứng bao gồm bộ xử lý, bộ nhớ, các thiết bị nhập xuất, đây là những tài
nguyên cơ bản của máy tính Chương trình ứng dụng như các chương trình dịch trong
ngôn ngữ lập trình Pascal, C,… , hệ thống cơ sở dữ liệu (Access, SQL), các chương
Trang 10trình tr chơi, và các chương trình thương mại Các chương trình này sử dụng tài
nguyên của máy tính để giải quyết các yêu cầu của người dùng Hệ điều hành làm
nhiệm vụ điều khiển và phối hợp việc sử dụng phần cứng cho những ứng dụng khác
nhau của nhiều người dùng khác nhau bao gồm cả thiết bị đầu cuối, hệ thống máy tính
khác) Hệ điều hành cung cấp một môi trường mà các chương trình có thể làm việc hữu hiệu trên đó
Hình 1.1 Mô hình trừu tượng của hệ thống máy tính
Hệ điều hành có thể được coi như là bộ phân phối tài nguyên của máy tính Nhiều tài nguyên của máy tính như thời gian sử dụng CPU, không gian bộ nhớ, vùng lưu trữ tập tin, thiết bị nhập xuất v.v… được các chương trình yêu cầu để giải quyết vấn đề Hệ điều hành hoạt động như một bộ quản lý các tài nguyên và phân phối chúng cho các chương trình và người dùng khi cần thiết Do có rất nhiều yêu cầu, hệ điều hành phải giải quyết vấn đề tranh chấp và phải quyết định cấp phát tài nguyên cho những yêu cầu theo thứ tự nào để hoạt động của máy tính là hiệu quả nhất Một hệ điều hành cũng có thể được coi như là một chương trình kiểm soát việc sử dụng máy tính, đặc biệt khi người dùng sử dụng các thiết bị nhập xuất
Tuy nhiên, nhìn chung chưa có định nghĩa nào là hoàn hảo về hệ điều hành Hệ điều hành tồn tại để giải quyết các vấn đề sử dụng hệ thống máy tính Mục tiêu cơ bản
Chương trình dịch
Hợp ngữ Soạn thảo văn
bản
CSDL
Chương trình ứng dụng
Hệ điều hành Phần cứng
Trang 11trợ cho các thao tác trên hệ thống máy tính hiệu quả hơn Mục tiêu này đặc biệt quan trọng trong những hệ thống nhiều người dùng và trong những hệ thống lớn Tuy nhiên
hai mục tiêu này cũng có phần tương phản vì vậy thuyết về hệ điều hành à đứng về
phía người thiết ế ra hệ điều hành n n t p trung vào việc tối ưu h a việc s dụng tài nguy n của máy tính à quan trọng nh t
1.3 CHỨC N NG HỆ ĐIỀU HÀNH
Để đạt mục tiêu trên hệ điều hành thực hiện hai chức năng chính như sau:
- Gi p một máy tính m rộng: Máy tính là một thiết bị vi điện tử, nó được cấu
thành từ các bộ phận như: Bộ xử lý, bộ nhớ, thiết bị nhập/xuất, BUS, Do đó, để làm việc với máy tính người dùng phải hiểu được cơ chế hoạt động của các bộ phận này và phải tác động trực tiếp vào nó, tất nhiên là dùng m máy ký số 0,1 Điều này là quá khó đối với người dùng Để đơn giản hơn, hệ điều hành phải che dấu hết
các chi tiết phức tạp của phần cứng máy tính bởi một một máy tính m rộng Máy
tính mở rộng này có đầy đủ các chức năng của một máy tính thực nhưng đơn giản
và d sử dụng Theo đó khi cần tác động vào máy tính thực người sử dụng chỉ cần tác động vào máy tính mở rộng, mọi sự chuyển đổi thông tin điều khiển từ máy tính
mở rộng sang máy tính thực hoặc ngược lại điều do hệ điều hành thực hiện Mục đích của chức năng này là: giúp người sử dụng khai thác các chức năng phần cứng máy tính d dàng và hiệu quả hơn
- Qu n tài nguy n hệ thống gồm Bộ xử lý, bộ nhớ, thiết bị nhập/xuất, tập tin,
Đây là những tài nguyên cơ bản mà hệ điều hành cấp phát cho các tiến trình trong khi điều khiển sự hoạt động của hệ thống
Khi người dùng cần thực hiện một chương trình hay khi một chương trình cần nạp thêm một tiến trình mới vào bộ nhớ thì hệ điều hành phải cấp phát không gian nhớ cho chương trình, tiến trình đó để chương trình, tiến trình đó nạp được vào bộ nhớ và hoạt động được Trong môi trường hệ điều hành đa nhiệm có thể có nhiều chương trình, tiến trình đồng thời cần được nạp vào bộ nhớ, nhưng không gian lưu trữ của bộ nhớ có giới hạn, do đó hệ điều hành phải tổ chức cấp phát bộ nhớ sao cho hợp lý để đảm bảo tất cả các chương trình, tiến trình khi cần đều được nạp vào bộ nhớ để hoạt động Ngoài ra hệ điều hành c n phải tổ chức bảo vệ các không gian nhớ đ cấp cho các chương trình, tiến trình để tránh sự truy cập bất hợp lệ và sự tranh chấp bộ nhớ
Trang 12giữa các chương trình, tiến trình, đặc biệt là các tiến trình đồng thời hoạt động trên hệ thống Đây là một trong những nhiệm vụ quan trọng của hệ điều hành
Trong quá trình hoạt động của hệ thống, đặc biệt là các hệ thống đa người dùng,
đa chương trình, đa tiến trình, c n xuất hiện một hiện tượng khác, đó là nhiều chương trình, tiến trình đồng thời sử dụng một không gian nhớ hay một tập tin dữ liệu, chương trình nào đó Trong trường hợp này hệ điều hành phải tổ chức việc chia s và giám sát việc truy xuất đồng thời trên các tài nguyên nói trên sao cho việc sử dụng tài nguyên có hiệu quả nhưng tránh được sự mất mát dữ liệu và làm hỏng các tập tin
Trên đây là hai dẫn chứng điển hình để chúng ta thấy vai tr của hệ điều hành trong việc quản lý tài nguyên hệ thống, sau này chúng ta sẽ thấy việc cấp phát, chia s , bảo vệ tài nguyên của hệ điều hành là một trong những công việc khó khăn và phức tạp nhất Hệ điều hành đ tốn nhiều chi phí cho công việc nói trên để đạt được mục tiêu: Trong mọi trường hợp tất cả các chương trình, tiến trình nếu cần được cấp phát tài nguyên để hoạt động thì sớm hay muộn nó đều được cấp phát và được đưa vào trạng thái hoạt động
Các nhà thiết kế hệ điều hành luôn hướng tới việc phát triển một hệ điều hành
ngày càng thân thiện d sử dụng, c c u n n t c n c c c c n n
sau 1:
- Hệ điều hành cho phép thực hiện nhiều chương trình đồng thời trong môi
trường đa tác vụ (đa nhiệm) Hệ điều hành đa nhiệm bao gồm: Windows NT,
Windows 2000, Linux và OS/2 Trong hệ thống đa nhiệm, hệ điều hành phải xác định khi nào thì một ứng dụng được chạy và mỗi ứng dụng được chạy trong khoản thời gian bao lâu thì phải dừng lại để cho các ứng dụng khác được chạy
- Hệ điều hành tự nạp n vào bộ nhớ: Quá trình nạp hệ điều hành vào bộ nhớ
được gọi là quá trình Booting Chỉ khi nào hệ điều hành đ được nạp vào bộ nhớ thì nó mới cho ph p người dùng giao tiếp với phần cứng Trong các hệ thống có nhiều ứng dụng đồng thời hoạt động trên bộ nhớ thì hệ điều hành phải chịu trách nhiệm chia s không gian bộ nhớ RAM và bộ nhớ cache cho các ứng dụng này
- Hệ điều hành và API (Application Programming Interface): là một tập các
hàm/thủ tục được xây dựng sẵn bên trong hệ thống, nó có thể thực hiện được
Trang 13
nhiều chức năng khác nhau như shutdown hệ thống, đảo ngược hiệu ứng màn hình, khởi động các ứng dụng,… Hệ điều hành giúp cho chương trình của người dùng giao tiếp với API hay thực hiện một lời gọi đến các hàm/thủ tục của API
- Nạp dữ iệu cần thiết vào bộ nhớ: Dữ liệu do người dùng cung cấp được đưa
vào bộ nhớ để xử lý Khi nạp dữ liệu vào bộ nhớ hệ điều hành phải lưu lại địa chỉ của bộ nhớ nơi mà dữ liệu được lưu ở đó Hệ điều hành phải luôn theo dõi bản đồ cấp phát bộ nhớ, nơi dữ liệu và chương trình được lưu trữ ở đó Khi một chương trình cần đọc dữ liệu, hệ điều hành sẽ đến các địa chỉ bộ nhớ nơi đang lưu trữ dữ liệu mà chương trình cần đọc để đọc lại nó
- Hệ điều hành bi n dịch các chỉ thị chương trình: Hệ điều hành phải đọc và giải
m các thao tác cần được thực hiện, nó được viết trong chương trình của người dùng Hệ điều hành cũng chịu trách nhiệm sinh ra thông báo lỗi khi hệ thống gặp lỗi trong khi đang hoạt động
- Hệ điều hành qu n tài nguy n: Nó đảm bảo việc sử dụng thích hợp tất cả các
tài nguyên của hệ thống như là: bộ nhớ, đĩa cứng, máy in, …
1.4 PH N LOẠI HỆ ĐIỀU HÀNH
Có nhiều cách khác nhau để phân loại hệ điều hành, ở đây chúng tôi dựa vào cách
mà hệ điều hành thực hiện các công việc, các tác vụ, các tiến trình của người dùng để phân loại hệ điều hành
1.4.1 Hệ điều hành xử lý theo lô đơn chương
Hệ điều hành loại này thực hiện các tác vụ ần ượt theo những chỉ thị đ được
xác định trước Khi một tác vụ chấm dứt thì hệ thống sẽ tự động thực hiện tác vụ tiếp theo mà không cần sự can thiệp từ bên ngoài, do đó hệ thống đạt tốc độ thực hiện cao
Để thực hiện được điều này hệ điều hành phải có bộ giám sát thường trực
Bộ giám sát thường trực: Khi một công việc chấm dứt, hệ thống sẽ thực hiện
công việc kế tiếp mà không cần sự can thiệp của người lập trình, do đó thời gian thực hiện sẽ mau hơn Một chương trình, c n gọi là bộ giám sát thường trực được thiết kế để giám sát việc thực hiện d y các công việc một cách tự động, chương trình này luôn luôn thường trú trong bộ nhớ chính
Trang 14Hệ điều hành Vùng chương trình người dùng
Bản 1.1 S p xếp bộ nhớ của hệ thống x theo ô đơn chương
n 2 Cài đ t hàng đợi các công việc người d ng
Trong hệ điều hành này khi hệ thống cần thực hiện một công việc thì nó phải lưu chương trình và dữ liệu của các công việc vào hàng đợi các công việc, sau đó sẽ thực hiện lần lượt từng bộ chương trình và dữ liệu của công việc tương ứng trong hàng đợi
và cho ra lần lượt các kết quả B ng 1 1 ở trên minh họa cho sự hoạt động của hệ thống
theo lô đơn chương
Với cách tổ chức hàng đợi công việc, thì hệ thống không thể thay đổi chương trình và dữ liệu của các công việc ngay cả khi chúng c n nằm trong hàng đợi, đây là một hạn chế Mặt khác trong quá trình thực hiện công việc nếu công việc chuyển sang truy xuất trên thiết bị vào/ra thì CPU rơi vào trạng thái chờ điều này gây l ng phí thời gian xử lý của CPU Các thao tác khác của hệ điều hành xử lý theo lô đơn chương:
- CPU và thao tác nh p xu t: CPU thường hay nhàn rỗi do tốc độ làm việc của
các thiết bị nhập xuất thường là thiết bị cơ chậm hơn rất nhiều lần so với các thiết bị điện tử CPU Cho dù là một CPU chậm nhất, nó cũng nhanh hơn rất nhiều lần so với thiết bị nhập xuất Do đó phải có các phương pháp để đồng bộ hóa việc hoạt động của CPU và thao tác nhập xuất
Nhập công việc
Môi trường sử dụng
Kết quả Môi trường máy tính Hàng đợi công việc
Trang 15- X off_ ine: Thay vì CPU phải đọc trực tiếp từ thiết bị nhập và xuất ra thiết bị
xuất, hệ thống dùng một bộ lưu trữ trung gian CPU chỉ thao thác với bộ phận lưu trữ trung gian này
- Spool (simultaneous peripheral operation online : là đồng bộ hóa các thao tác
bên ngoài online Cơ chế này cho ph p xử lý của CPU là online, sử dụng đĩa để lưu các dữ liệu nhập/xuất
1.4.2 Hệ thống xử lý theo lô đa chương
Một trong những hạn chế của hệ điều hành xử lý theo lô đơn giản là l ng phí thời gian xử lý của CPU khi công việc hiện tại truy xuất đến thiết bị vào/ra Hệ điều hành
xử lý theo lô đa chương sẽ khắc phục hạn chế này
Hệ điều hành Công việc 1 Công việc 2 Công việc 3 Công việc 4
Bản 2 S p xếp bộ nhớ của hệ thống x theo ô đa chương
Khi có nhiều công việc cùng truy xuất lên thiết bị, vấn đề lập lịch cho các công việc là cần thiết Khía cạnh quan trọng nhất trong việc lập lịch là khả năng đa chương
(multiprogram) Mục ti u của n à gia tăng hiệu su t s dụng CPU b ng cách t chức
các công việc sao cho CPU uôn uôn ph i trong trạng thái àm việc
Hệ điều hành loại này có khả năng thực hiện nhiều công việc, nhiều chương trình đồng thời Khi cần thực hiện nhiều công việc đồng thời hệ điều hành sẽ nạp một phần
m lệnh và dữ liệu vào bộ nhớ các phần c n lại sẽ được nạp sau tại thời điểm thích hợp và tất cả đều ở trạng thái sẵn sàng thực hiện Sau đó hệ điều hành dùng bộ định thời CPU chọn ra một công việc nào đó và cho nó thực thi trong CPU, nhưng khi công việc đang thực hiện cần truy xuất thiết bị vào/ra thì CPU sẽ được chuyển sang thực hiện các công việc khác, và cứ như thế hệ điều hành tổ chức chuyển hướng CPU để
Trang 16thực hiện hết các phần công việc trong bộ nhớ cũng như các công việc mà hệ thống yêu cầu
Hệ điều hành loại này mang lại hai ưu điểm đó là tiết iệm được bộ nhớ, vì hông
nạp hết mã ệnh và dữ iệu của các công việc vào bộ nhớ, và hạn chế thời gian rỗi của CPU Tuy nhiên nó phải trả chi phí cao cho việc lập lịch CPU, tức là khi CPU r nh hệ
điều hành phải xem x t nên chuyển nó cho công việc nào trong số các công việc đang đợi ở trạng thái sẵn sàng Ngoài ra hệ điều hành c n phải giải quyết việc chia s bộ nhớ chính cho các công việc khác nhau Hệ điều hành MS-DOS là hệ điều hành đơn nhiệm,
đa chương
Với hệ đa chương hệ điều hành ra quyết định cho người dùng Vì vậy, hệ điều hành đa chương rất tinh vi Hệ phải xử lý các vấn đề lập lịch cho công việc, lập lịch cho bộ nhớ và cho cả CPU
1.4.3 Hệ thống chia s thời gian
Hệ thống chia s thời gian là một mở rộng logic của hệ đa chương Hệ thống này
c n được gọi là hệ thống đa nhiệm như Windows 9x/NT Chia sẻ thời gian đây chính
à chia sẻ thời gian x của CPU cho các công việc, các tiến trình đang ở trong trạng
thái sẵn sàng thực hiện Mục ti u của n à cung c p cơ chế cho phép người d ng giao
tiếp với mỗi chương trình trong hi chạy
Nguyên tắc của hệ điều hành chia s thời gian tương tự như trong hệ điều hành xử
lý theo lô đa chương nhưng việc chuyển CPU từ tác vụ, tiến trình này sang tác vụ, tiến trình khác không phụ thuộc vào việc tác vụ, tiến trình hiện tại có truy xuất đến thiết bị vào/ra hay không mà chỉ phụ thuộc vào sự điều phối CPU của hệ điều hành Công việc điều phối CPU của hệ điều hành rất phức tạp phụ thuộc vào nhiều yếu tố khác nhau, chúng ta sẽ đề cập đến vấn đề này trong chương sau của tài liệu này
Hệ điều hành chia s phức tạp hơn hệ điều hành đa chương Nó phải có các chức năng: quản trị và bảo vệ bộ nhớ, sử dụng bộ nhớ ảo Nó cũng cung cấp hệ thống tập tin truy xuất online…Hệ điều hành chia s là kiểu của các hệ điều hành hiện đại ngày nay
1.4.4 Hệ thống đa xử lý hệ thống song song)
Trang 17Ngoài hệ thống một bộ xử lý c n có các hệ thống c nhiều bộ x c ng chia sẻ
hệ thống đường truyền dữ iệu, đồng hồ, bộ nhớ và các thiết bị ngoại vi Các bộ xử lý
này liên lạc bên trong với nhau
n 3 Hệ thống đa x
Có n u n uyên n ân xây d n t ốn d n n y:
- Thông ượng được gia tăng: Với sự gia tăng số lượng bộ xử lý, công việc được
thực hiện nhanh chóng hơn, Nhưng không phải theo đúng tỉ lệ thời gian, nghĩa
là có n bộ xử lý không có nghĩa là sẽ thực hiện nhanh hơn n lần Vì trong khi
nhiều bộ xử lý cộng tác trên một công việc, một lượng chi phí phải chịu trong
việc giữ các thành phần làm việc phù hợp Chi phí này cộng với chi phí cạnh
tranh tài nguyên được chia s , làm giảm kết quả được mong đợi từ những bộ xử
lý bổ sung Tương tự như một nhóm gồm N lập trình viên làm việc với nhau
không dẫn đến kết quả công việc đang đạt được tăng N lần
- Tính inh tế của việc mở rộng: hệ thống đa xử lý có thể tiết kiệm nhiều chi phí
hơn hệ thống đơn bộ xử lý, bởi vì chúng có thể chia s ngoại vi, thiết bị lưu trữ
và điện Nếu nhiều chương trình điều hành trên cùng tập hợp dữ liệu thì lưu trữ
dữ liệu đó trên một đĩa và tất cả bộ xử lý chia s chúng sẽ r hơn là có nhiều
máy tính với đĩa cục bộ và nhiều bản sao dữ liệu
- Kh năng tin c y được gia tăng: nếu các chức năng được phân bổ hợp lý
giữa các bộ xử lý thì lỗi trên một bộ xử lý sẽ không dừng hệ thống, chỉ năng lực
bị giảm Nếu chúng ta có 10 bộ xử lý và có 1 bộ xử lý bị sự cố thì mỗi bộ xử lý
trong 9 bộ xử lý c n lại phải chia s của công việc của bộ xử lý bị lỗi Do đó,
toàn bộ hệ thống chỉ giảm 10% năng lực hơn là dừng hoạt động Các hệ thống
được thiết kế như thế được gọi là hệ thống có khả năng chịu lỗi fault tolerant 2
2 Nguy n Phú Trường, Giáo trình hệ điều hành, ĐH Cần Thơ, 2005,tr.8
Trang 18Hệ thống đa xử lý thông thường sử dụng cách đa x đối xứng, trong cách này
mỗi bộ xử lý chạy với một bản sao của hệ điều hành, những bản sao này liên lạc với nhau khi cần thiết Một ví dụ về hệ thống xử lý đối xứng là phiên bản Encore của UNIX cho máy tính Multimax Hệ thống này có hàng chục bộ xử lý Ưu điểm của nó là nhiều tiến trình có thể thực hiện cùng lúc Một hệ thống đa xử lý cho ph p nhiều công việc và tài nguyên được chia s tự động trong những bộ xử lý khác nhau
Hầu như tất cả hệ điều hành hiện đại - gồm Windows NT, Solaris, Digital UNIX, OS/2 và LINUX - hiện nay cung cấp sự hỗ trợ đa xử lý đối xứng
Một số hệ thống sử dụng đa x b t đối xứng, trong đó mỗi bộ xử lý được giao
một công việc riêng biệt Một bộ xử lý chính kiểm soát toàn bộ hệ thống, các bộ xử lý khác thực hiện theo lệnh của bộ xử lý chính hoặc theo những chỉ thị đ được định nghĩa trước Mô hình này theo dạng quan hệ chủ tớ Bộ xử lý chính sẽ lập lịch cho các
bộ xử lý khác
1.4.5 Hệ thống phân tán
Hệ thống này cũng tương tự như hệ thống chia s thời gian nhưng các bộ xử lý không chia s bộ nhớ và đồng hồ, thay vào đó mỗi bộ xử lý có bộ nhớ cục bộ riêng
Các bộ x thông tin với nhau thông qua các đường truyền thông như những bus tốc
độ cao hay đường dây điện thoại
Các bộ xử lý trong hệ phân tán thường khác nhau về kích thước và chức năng Nó
có thể bao gồm máy vi tính, trạm làm việc, máy mini, và những hệ thống máy lớn Các
bộ xử lý thường được tham khảo với nhiều tên khác nhau như Site, Node, Computer v.v tùy thuộc vào trạng thái làm việc của chúng
C c n uyên n ân p ả xây d n t ốn p ân t n l :
- Chia sẻ tài nguy n: Một người dùng A có thể sử dụng máy in của người dùng B
và người dùng B có thể truy xuất những tập tin của A Tổng quát, chia s tài nguyên trong hệ thống phân tán cung cấp một cơ chế để chia s tập tin ở vị trí
xa, xử lý thông tin trong một cơ sở dữ liệu phân tán, in ấn tại một vị trí xa, sử dụng những thiết bị ở xa để thực hiện các thao tác
Trang 19- Tăng tốc độ tính toán: Một thao tác tính toán được chia làm nhiều phần nhỏ
cùng thực hiện một lúc Hệ thống phân tán cho ph p phân chia việc tính toán trên nhiều vị trí khác nhau để tính toán song song
- An toàn: Nếu một vị trí trong hệ thống phân tán bị hỏng, các vị trí khác vẫn tiếp
tục làm việc
- Thông tin i n ạc với nhau: Có nhiều lúc, chương trình cần chuyển đổi dữ liệu
từ vị trí này sang vị trí khác Ví dụ trong hệ thống Windows, thường có sự chia
s và chuyển dữ liệu giữa các cửa sổ Khi các vị trí được nối kết với nhau trong một hệ thống mạng, việc trao đổi dữ liệu di n ra rất d Người dùng có thể chuyển tập tin hay các Email cho nhau từ cùng vị trí hay những vị trí khác
Hệ thống thời gian thực cứng là công việc được hoàn tất đúng lúc Lúc đó dữ liệu thường được lưu trong bộ nhớ ngắn hạn hay trong ROM Việc xử lý theo thời gian thực
sẽ xung đột với tất cả hệ thống liệt kê ở trên
Dạng thứ hai là hệ thống thời gian thực mềm, mỗi công việc có một độ ưu tiên riêng và sẽ được thi hành theo độ ưu tiên đó Có một số lĩnh vực áp dụng hữu hiệu phương pháp này là các ứng dụng đa phương tiện
1.4.7 Hệ xách tay
Hệ xách tay gồm các máy ỹ thu t số hỗ trợ cá nhân (personal digital
assistants-PDAs như Palm hay điện thoại di động với nối kết Internet Những người phát triển hệ xách tay và ứng dụng gặp phải nhiều thử thách, nhất là sự giới hạn về ích thước của thiết bị Thí dụ, một PDA điển hình cao khoảng 12,7cm và rộng khoảng 7,62cm và
Trang 20trọng lượng của nó ít hơn 225g Do sự giới hạn về kích thước này, hầu hết các thiết bị xách tay có bộ nhớ nhỏ gồm các bộ xử lý thấp và màn hình hiển thị nhỏ Bây giờ chúng
ta sẽ xem x t mỗi sự giới hạn này
Nhiều thiết bị xách tay có dung lượng bộ nhớ 512KB và 8MB ngược lại, các máy PC hay trạm làm việc có hàng trăm MB bộ nhớ Do đó, hệ điều hành và các ứng dụng phải quản lý bộ nhớ hiệu quả Hiện nay, nhiều thiết bị xách tay không dùng kỹ thuật bộ nhớ ảo do đó buộc người phát triển chương trình làm việc trong phạm vi giới hạn của bộ nhớ vật lý
Vấn đề thứ hai mà người phát triển cần quan tâm đến là tốc độ của bộ xử lý được dùng trong thiết bị Các bộ xử lý nhanh hơn yêu cầu điện năng nhiều hơn Để chứa một
bộ xử lý nhanh hơn bên trong thiết bị xách tay yêu cầu nhiều pin hơn và phải được nạp lại thường xuyên Để tối thiểu hoá kích thước của các thiết bị xách tay đ i hỏi bộ xử lý nhỏ hơn, chậm hơn tiêu thụ ít điện năng hơn Do đó, hệ điều hành và các ứng dụng phải được thiết kế không đ i hỏi sử dụng nhiều bộ xử lý
Vấn đề cuối cùng gây khó khăn cho người thiết kế chương trình cho các thiết bị xách tay là màn hình hiển thị nhỏ Màn hình cho thiết bị xách tay thường có diện tích không quá 7,62cm Những tác vụ quen thuộc như đọc email hay hiển thị các trang web, phải được cô đọng vào màn hình nhỏ hơn Một phương pháp để hiển thị nội dung các trang web là cắt xén web, ở đó chỉ một tập hợp nhỏ trang web được phân phát và hiển thị trên thiết bị xách tay
1.5 L CH S PHÁT TRIỂN CỦ HỆ ĐIỀU HÀNH
1.5.1 Thế hệ 1 1945 – 1955)
Vào khoảng giữa thập niên 1940, Howard Aiken ở Havard và John Von Neumann
ở Princeton, đ thành công trong việc xây dựng máy tính dùng ống chân không Những máy này rất lớn với hơn 10000 ống chân không nhưng chậm hơn nhiều so với máy r nhất ngày nay3
Mỗi máy được một nhóm người thực hiện tất cả các khâu từ thiết kế, xây dựng lập trình, thao tác đến quản lý Lập trình bằng ngôn ngữ máy tuyệt đối, thường là bằng
Trang 21
cách dùng bảng điều khiển để thực hiện các chức năng cơ bản Ngôn ngữ lập trình chưa
được biết đến và hệ điều hành cũng chưa nghe đến
Vào đầu thập niên 1950, phiếu đục lổ ra đời và có thể viết chương trình trên phiếu thay cho dùng bảng điều khiển
1.5.2 Thế hệ 2 1955 – 1965)
Sự ra đời của thiết bị bán dẫn vào giữa thập niên 1950 làm thay đổi bức tranh tổng thể Máy tính trở nên đủ tin cậy hơn Nó được sản xuất và cung cấp cho các khách hàng Lần đầu tiên có sự phân chia rõ ràng giữa người thiết kế, người xây dựng, người vận hành, người lập trình, và người bảo trì
Để thực hiện một công việc một chương trình hay một tập hợp các chương trình , lập trình viên trước hết viết chương trình trên giấy bằng hợp ngữ hay FORTRAN sau đó đục lỗ trên phiếu và cuối cùng đưa phiếu vào máy Sau khi thực hiện xong nó sẽ xuất kết quả ra máy in
Hệ thống x theo ô ra đời, nó lưu các yêu cầu cần thực hiện lên băng từ, và hệ
thống sẽ đọc và thi hành lần lượt Sau đó, nó sẽ ghi kết quả lên băng từ xuất và cuối cùng người dùng sẽ đem băng từ xuất đi in
Hệ thống xử lý theo lô hoạt động dưới sự điều khiển của một chương trình đặc biệt là tiền thân của hệ điều hành sau này Ngôn ngữ lập trình sử dụng trong giai đoạn này chủ yếu là FORTRAN và hợp ngữ
Sau đó, hệ điều hành đa chương ra đời, có nhiều công việc cùng xuất hiện trong
bộ nhớ CPU không bao giờ r nh Bộ nhớ được chia làm nhiều phần để lưu các công việc khác nhau, khi một công việc chờ thực hiện nhập xuất, CPU sẽ xử lý các công
Trang 22việc khác Tuy nhiên khi có nhiều công việc cùng tồn tại trong bộ nhớ, vấn đề là phải
có một cơ chế bảo vệ tránh các công việc ảnh hưởng đến nhau
Giai đoạn này cũng đánh dấu sự ra đời của hệ điều hành chia sẻ thời gian như
CTSS4 của MIT5 Đồng thời các hệ điều hành lớn ra đời như MULTICS, UNIX và hệ thống các máy mini cũng xuất hiện như DEC PDP-1
1.5.4 Thế hệ 4 1980-nay )
Giai đoạn này đánh dấu sự ra đời của máy tính cá nhân, đặc biệt là hệ thống IBM
PC với hệ điều hành MS-DOS và Windows sau này Bên cạnh đó là sự phát triển mạnh
của các hệ điều hành tựa Unix trên nhiều hệ máy khác nhau như Linux Ngoài ra, từ đầu thập niên 90 cũng đánh dấu sự phát triển mạnh mẽ của hệ điều hành mạng và hệ điều hành phân tán
Các chuyên gia về kiến trúc máy tính cũng dự đoán thế hệ thứ 5 dành cho các máy tính xử lý song song Thế hệ của những máy tính thông minh, dựa trên các ngôn ngữ trí tuệ nhân tạo như LISP và PROLOG, và các giao diện người – máy Năm
2004, Robot thông minh gần giống con người nhất là ASIMO Advanced Step Innovative Mobility: Bước chân tiên tiến của đổi mới và chuyển động
1.6 CẤU TR C CỦ HỆ ĐIỀU HÀNH
1.6.1 Các thành phần ên trong hệ điều hành
1.6.1.1 Quản lý tiến trình
Một chương trình không thực hiện được gì cả nếu như nó không được CPU thi
hành Một t ến tr n à một chương trình đang được thực thi, nhưng ý nghĩa của nó
c n rộng hơn Một công việc theo lô là một tiến trình Một chương trình người dùng chia s thời gian là một tiến trình, một công việc của hệ thống như soopling xuất ra
máy in cũng là một tiến trình Một tiến trình ph i s dụng tài nguy n như thời gian s
dụng CPU, hông gian bộ nhớ, t p tin, các thiết bị nh p xu t, đ hoàn t t công việc của mình Các tài nguyên này được cung cấp khi tiến trình được tạo hay trong quá trình
thi hành Khi tiến trình được tạo, nó sử dụng rất nhiều tài nguyên vật lý và luận lý Ví
dụ, khảo sát tiến trình hiển thị trạng thái của tập tin lên màn hình Đầu vào của tiến
4
Bộ máy tính chia s thời gian thực khổng lồ được gọi là CTSS
Trang 23trình là tên tập tin, và tiến trình sẽ thực hiện những chỉ thị thích hợp, thực hiện lời gọi
hệ thống để nhận được những thông tin mong muốn và hiển thị nó lên màn hình Khi tiến trình kết thúc, hệ điều hành sẽ thu hồi các tài nguyên trước đây đ cấp phát cho tiến trình
Một tiến trình được coi là một đơn vị làm việc của hệ thống Một hệ thống có thể
có nhiều tiến trình cùng lúc, trong đó một số tiến trình là của hệ điều hành, một số tiến trình là của người dùng các tiến trình này có thể di n ra đồng thời
Va trò của u n tron v c quản lý t ến tr n l :
- Tạo và hủy các tiến trình của người dùng và của hệ thống
- Ngưng và kích hoạt lại một tiến trình
- Cung cấp cơ chế đồng bộ tiến trình
- Cung cấp các thông tin liên lạc giữa các tiến trình
- Cung cấp cơ chế quản lý deadlock xem chương2
1.6.1.2 Quản lý ộ nhớ chính
Trong hệ thống máy tính hiện đại, bộ n ớ c ín (Physical Memory) là trung tâm
của các thao tác, xử lý Bộ nhớ chính có thể xem như một mảng kiểu Byte hay kiểu word Mỗi phần tử đều có địa chỉ Đó là nơi lưu dữ liệu được CPU truy xuất một cách nhanh chóng so với các thiết bị nhập/xuất CPU đọc những chỉ thị từ bộ nhớ chính Các thiết bị nhập/xuất cài đặt cơ chế DMA xem chương 4 cũng đọc và ghi dữ liệu trong
bộ nhớ chính Thông thường bộ nhớ chính chứa các thiết bị mà CPU có thể định vị trực tiếp Ví dụ CPU truy xuất dữ liệu từ đĩa, những dữ liệu này được chuyển vào bộ nhớ qua lời gọi hệ thống nhập/xuất
Một chương trình muốn thi hành trước hết phải được ánh xạ thành địa chỉ tuyệt đối và nạp vào bộ nhớ chính Khi chương trình thi hành, hệ thống truy xuất các chỉ thị
và dữ liệu của chương trình trong bộ nhớ chính Ngay cả khi tiến trình kết thúc, dữ liệu vẫn c n trong bộ nhớ chính cho đến khi một tiến trình khác được ghi chồng lên
Để tối ưu hóa quá trình hoạt động của CPU và tốc độ của máy tính, một số tiến trình được lưu giữ trong bộ nhớ Có rất nhiều kế hoạch quản trị bộ nhớ do có nhiều ứng dụng bộ nhớ khác nhau và hiệu quả của các thuật toán phụ thuộc tùy vào tình huống cụ
Trang 24thể Lựa chọn một thuật toán cho một hệ thống được mô tả trước phụ thuộc vào nhiều yếu tố, đặc biệt là phần cứng của hệ thống
u n có n ữn va trò n ư sau tron v c quản lý bộ n ớ c ính:
- Lưu giữ thông tin về các vị trí trong bộ nhớ đ được sử dụng và tiến trình nào sử dụng
- Quản lý không gian bộ nhớ trống
- Quyết định tiến trình nào được nạp vào bộ nhớ chính, khi bộ nhớ đ sẳn dùng
- Cấp phát và thu hồi bộ nhớ khi cần thiết
- Lập lịch cho vấn đề đọc/ghi thông tin trên đĩa của đầu từ
1.6.1.3 Quản lý ộ nhớ phụ
Mục tiêu chính của hệ thống máy tính là thực hiện chương trình Những chương trình với dữ liệu cần truy xuất của chúng phải được đặt trong bộ nhớ chính trong suốt quá trình thi hành Nhưng bộ nhớ chính quá nhỏ để có thể lưu giữ mọi dữ liệu và chương trình, ngoài ra dữ liệu sẽ mất khi không c n được cung cấp năng lượng Hệ
thống máy tính ngày nay cung cấp hệ thống ưu trữ phụ backing store nằm trên
không gian c n trống của đĩa từ Đa số các máy tính đều dùng đĩa để lưu trữ cả chương trình và dữ liệu Hầu như tất cả chương trình: chương trình dịch, hợp ngữ, thủ tục, trình soạn thảo, định dạng đều được lưu trữ trên đĩa cho tới khi nó được thực hiện, nạp vào trong bộ nhớ chính và cũng sử dụng đĩa để chứa dữ liệu và kết quả xử lý Vì vậy một
bộ quản lý hệ thống đĩa rất quan trọng cho hệ thống máy tính
Va trò của u n tron v c quản lý ĩa:
- Quản lý không gian trống trên đĩa
Trang 25Mỗi thiết bị nhập/xuất có trình điều khiển thiết bị riêng Chỉ có device driver mới hiểu đến cấu trúc đặc thù của thiết bị mà nó mô tả
Một trong những mục tiêu của hệ điều hành là giúp người dùng khai thác hệ thống máy tính d dàng và hiệu quả, do đó các thao tác trao đổi thông tin trên thiết bị nhập/xuất phải trong suốt đối với người dùng
Để thực hiện được điều này hệ điều hành phải tồn tại một bộ phận điều khiển thiết bị, bộ phận này phối hợp cùng CPU để quản lý sự hoạt động và trao đổi thông tin
giữa hệ thống, chương trình ứng dụng và người dùng với các thiết bị xuất/nhập Bộ
ph n điều hi n thiết bị thực hiện những nhiệm vụ sau:
- G i mã ệnh điều hi n đến thiết bị: Hệ điều hành điều khiển các thiết bị bằng
các m điều khiển, do đó trước khi bắt đầu một quá trình trao đổi dữ liệu với thiết bị thì hệ điều hành phải gởi m điều khiển đến thiết bị
- Tiếp nh n y u cầu ng t từ các thiết bị: Các thiết bị khi cần trao đổi với hệ thống
thì nó phát ra một tín hiệu yêu cầu ngắt, hệ điều hành tiếp nhận yêu cầu ngắt từ các thiết bị, xem x t và thực hiện một thủ tục để đáp ứng yêu cầu từ các thiết bị
- Phát hiện và x ỗi: quá trình trao đổi dữ liệu thường xảy ra các lỗi như: thiết
bị vào ra chưa sẵn sàng, đường truyền hỏng, do đó hệ điều hành phải tạo ra các cơ chế thích hợp để phát hiện lỗi sớm nhất và khắc phục các lỗi vừa xảy ra nếu có thể
Một t ốn n ập/xuất bao ồm:
- Hệ thống buffer caching
- Giao tiếp điều khiển thiết bị tổng quát
- Bộ điều khiển cho các thiết bị phần cứng
1.6.1.5 Quản lý hệ thống tập tin
Máy tính có thể lưu trữ thông tin trên nhiều loại thiết bị lưu trữ khác nhau, mỗi thiết bị lại có tính chất và cơ chế tổ chức lưu trữ thông tin khác nhau, điều này gây khó khăn cho người dùng Để khắc phục điều này hệ điều hành đưa ra khái niệm đồng nhất cho tất cả các thiết bị lưu trữ vật lý, đó là tập tin
Trang 26Tập tin là đơn vị lưu trữ cơ bản nhất, mỗi tập tin có một tên riêng Hệ điều hành phải thiết lập mối quan hệ tương ứng giữa tên tập tin và thiết bị lưu trữ chứa tập tin Theo đó khi cần truy xuất đến thông tin đang lưu trữ trên bất kỳ thiết bị lưu trữ nào người dùng chỉ cần truy xuất đến tập tin tương ứng thông qua tên của nó, tất cả mọi việc c n lại đều do hệ điều hành thực hiện
Trong hệ thống có nhiều tiến trình đồng thời truy xuất tập tin, hệ điều hành phải tạo ra những cơ chế thích hợp để bảo vệ tập tin tránh việc đọc/ghi bất hợp lệ trên tập tin
Như vậy bộ p ận quản lý tập t n của u n t c n n ữn n m vụ sau:
- Tạo/xoá một tập tin/thư mục
- Bảo vệ tập tin khi có hiện tượng truy xuất đồng thời
- Cung cấp các thao tác xử lý và bảo vệ tập tin/thư mục
- Tạo mối quan hệ giữa tập tin và bộ nhớ phụ chứa tập tin
- Tạo cơ chế truy xuất tập tin thông qua tên tập tin
- Ánh xạ tập tin trên hệ thống lưu trữ phụ
- Backup tập tin trên các thiết bị lưu trữ
1.6.1.6 Hệ thống ảo vệ
Trong một hệ thống nhiều người dùng và cho ph p nhiều tiến trình di n ra đồng thời, các tiến trình phải được bảo vệ đối với những hoạt động khác Do đó, hệ thống cung cấp cơ chế để đảm bảo rằng tập tin, bộ nhớ, CPU, và những tài nguyên khác chỉ được truy xuất bởi những tiến trình có quyền Ví dụ, bộ nhớ đảm bảo rằng tiến trình chỉ được thi hành trong phạm vi địa chỉ của nó Bộ thời gian đảm bảo rằng không có tiến trình nào độc chiếm CPU Cuối cùng các thiết bị ngoại vi cũng được bảo vệ
Hệ thống b o vệ là một cơ chế kiểm soát quá trình truy xuất của chương trình,
tiến trình, hoặc người dùng với tài nguyên của hệ thống Cơ chế này cũng cung cấp cách thức để mô tả lại mức độ kiểm soát
Hệ thống bảo vệ cũng làm tăng độ an toàn khi kiểm tra lỗi trong giao tiếp giữa những hệ thống nhỏ bên trong
Trang 271.6.1.7 Hệ thống cơ chế dòng lệnh
Một trong những phần quan trọng của chương trình hệ thống trong một hệ điều
hành là cơ chế dòng ệnh được biết đến như bộ thông dịch lệnh thành phần chính là bộ
xử lý shell, đó là giao tiếp giữa người dùng và hệ điều hành Bộ x she àm nhiệm
vụ: nhận lệnh, phân tích lệnh, đáp ứng yêu cầu của lệnh
Một số hệ điều hành đặt cơ chế d ng lệnh bên trong hạt nhân, số khác như DOS và UNIX thì xem hệ điều hành như là một chương trình đặc biệt, được thi hành khi các công việc bắt đầu hoặc khi người dùng login lần đầu tiên
MS-Các lệnh đưa vào hệ điều hành thông qua bộ điều hi n ệnh Trong các hệ thống
chia s thời gian một chương trình có thể đọc và thông dịch các lệnh điều khiển được thực hiện một cách tự động Chương trình này thường được gọi là bộ thông dịch điều khiển, cơ chế d ng lệnh hoặc Shell Chức năng của nó rất đơn giản đó là lấy lệnh kế tiếp và thi hành
Mỗi hệ điều hành sẽ có những giao tiếp khác nhau, dạng đơn giản theo cơ chế
d ng lệnh, dạng thân thiện với người dùng như giao diện của Macintosh có các biểu tượng, cửa sổ thao tác dùng chuột
Các lệnh có quan hệ với việc tạo và quản lý các tiến trình, kiểm soát nhập xuất, quản lý bộ lưu trữ phụ, quản lý bộ nhớ chính, truy xuất hệ thống tập tin và cơ chế bảo
vệ
1.6.2 Các dịch vụ của hệ điều hành
Hệ điều hành cung cấp một môi trường để thi hành các chương trình, bằng cách cung cấp các dịch vụ cho chương trình và cho người dùng Các dịch vụ này trên mỗi hệ thống là khác nhau nhưng cũng có những lớp chung Các dịch vụ này giúp cho các lập trình viên thuận tiện hơn và việc lập trình d dàng hơn
- Thi hành chương trình: hệ điều hành phải có nhiệm vụ nạp chương trình của
người dùng vào bộ nhớ, chuẩn bị đầy đủ các điều kiện về tài nguyên để chương trình có thể chạy được và kết thúc được, có thể kết thúc bình thường hoặc kết thúc do bị lỗi Khi chương trình kết thúc hệ điều hành phải thu hồi tài nguyên đ cấp cho chương trình và ghi lại các thông tin mà chương trình đ thay đổi trong quá trình chạy nếu có
Trang 28- Thao tác nh p xu t: Một chương trình thi hành có thể yêu cầu nhập xuất Nhập
xuất này có thể là tập tin hay thiết bị Đối với thiết bị có một hàm đặc biệt được thi hành Để tăng hiệu quả, người dùng không truy xuất trực tiếp các thiết bị nhập xuất mà thông qua cách thức do hệ điều hành cung cấp chẳng hạn, phải nạp được dữ liệu mà chương trình cần vào bộ nhớ
- Thao tác tr n hệ thống t p tin: Hệ điều hành cần cung cấp các công cụ để
chương trình d dàng thực hiện các thao tác đọc ghi trên các tập tin, các thao tác này phải thực sự an toàn, đặc biệt là trong môi trường đa nhiệm
- Trao đ i thông tin giữa các tiến trình: có nhiều tình huống một tiến trình cần
trao đổi thông tin với một tiến trình khác Có hai cách thực hiện: Một là thực hiện thay thế tiến trình trên cùng máy tính, hai là thay thế tiến trình trên hệ thống khác trong hệ thống mạng Thông tin có thể được cài đặt qua chia s bộ nhớ, hoặc bằng kỹ thuật chuyển thông điệp Việc chuyển thông tin được thực hiện bởi hệ điều hành
- Phát hiện và x ỗi: Hệ điều hành phải có các công cụ để chính hệ điều hành
và để hệ điều hành giúp chương trình của người dùng phát hiện các lỗi do hệ thống CPU, Memory, I/O device, Program phát sinh Hệ điều hành cũng phải
đưa ra các dịch vụ để xử lý các lỗi sao cho hiệu quả nhất
Để hiểu quá trình hoạt động của lời gọi hệ thống chúng ta cùng khảo sát một chương trình nhỏ dùng để đọc dữ liệu từ một tập tin ch p qua tập tin khác Dữ liệu nhập đầu tiên của của chương trình là tên của hai tập tin: tập tin nhập và tập tin xuất Tên này được mô tả bằng nhiều cách tùy thuộc vào thiết kế hệ điều hành như: chương trình yêu cầu người dùng cho biết tên của hai tập tin, họ cũng có thể cung cấp bằng cách lựa chọn với chuột Khi có tên của hai tập tin, chương trình mở tập tin nhập và tạo tập tin xuất Mỗi thao tác này được thực hiện bởi những lời gọi hệ thống khác nhau
Trang 29Cũng có những trường hợp phát sinh lỗi: Khi chương trình mở tập tin nhập, có thể xảy
ra trường hợp không có tập tin có tên như mô tả hoặc tập tin bị cấm truy cập Trong trường hợp này chương trình phải xuất thông điệp lên màn hình Nếu tập tin nhập tồn tại, phải tạo tập tin mới Hệ thống phải kiểm tra tiếp xem đ có tập tin xuất tồn tại không và sẽ có những lời gọi hệ thống tương ứng để giải quyết hoặc là hủy tiến trình, hai là xóa tập tin đ tồn tại và tạo tập tin mới Sau khi đ thiết lập xong tập tin, hệ thống tiếp tục tạo v ng lặp đọc dữ liệu từ tập tin nhận và ghi lên tập tin xuất Mỗi bước đều có kiểm tra lỗi Sau khi ch p xong, chương trình sẽ đóng hai tập tin lại dùng một lời gọi hệ thống khác , xuất thông báo lên màn hình dùng lời gọi hệ thống cuối cùng chấm dứt chương trình lời gọi hệ thống cuối cùng
Trong các ngôn ngữ lập trình cấp cao, người dùng không cần quan tâm đến chi tiết mà chỉ cần thông qua các hàm hay các lệnh để thực hiện Lời gọi hệ thống có thể
di n ra theo một cách khác Kiểu và khối lượng thông tin tùy thuộc vào hệ thống và lúc gọi
Có ba phương pháp được s dụng đ chuy n tham số cho hệ điều hành Cách đơn
gi n nh t à chuy n tham số vào thanh ghi Nếu c nhiều tham số, n sẽ được ưu trữ trong hối ho c b ng trong bộ nhớ Cách cuối c ng à d ng cơ chế stac 6
Lời gọi hệ thống có thể được chia thành các loại: kiểm soát tiến trình, thao tác tập tin, thao tác thiết bị, thông tin liên lạc
1.6.4 Cấu tr c hệ điều hành
1.6.4.1 Cấu tr c đơn giản
Cấu trúc này trong một số hệ thống thương mại và không có cấu trúc được định nghĩa tốt thông thường hệ điều hành bắt đầu là một hệ thống nhỏ, đơn giản và có giới hạn MS-DOS là một hệ điều hành có cấu trúc đơn giản, nó cung cấp những chức năng cần thiết nhất trong một không gian nhỏ nhất do sự giới hạn của phần cứng mà nó chạy trên đó và không chia thành những đơn thể rõ rệt
6 Nguy n Phú Trường, Giáo trình hệ điều hành, ĐH Cần Thơ, 2005,tr.25
Trang 30Hình 1.4 C u trúc của MS-DOS
Mặc dù MS-DOS có cấu trúc nhưng giữa giao diện và chức năng không có sự phân chia rõ rệt Các chương trình ứng dụng có thể truy xuất trực tiếp các thủ tục nhập xuất cơ bản và ghi trực tiếp lên màn hình hay bộ điều khiển đĩa
Một hệ điều hành cũng có cấu trúc đơn giản là UNIX với những phiên bản đầu
tiên Cấu trúc của nó chỉ bao gồm hai phần: hạt nhân và các chương trình hệ thống
Hạt nhân được chia thành một chuỗi giao tiếp và device driver (xem chương 5, bộ điều khiển thiết bị)
Người dùng Shell và lệnh Biên dịch và thông dịch Thư viện hệ thống
Giao tiếp ời gọi hệ thống với nhân
Tín hiệu kiểm soát hệ thống nhập xuất tuần
tự của bộ điều khiển Thiết bị đầu cuối
Hệ thống tập tin chuyển đổi giữa
hệ thống nhập xuất khối và bộ điều khiển đĩa
Lập lịch CPU, thay thế phân trang, yêu cầu phân trang trong
bộ nhớ ảo
Giao tiếp giữ hạt nhân và hạt nhân
Bộ kiểm soát Thiết bị
đầu cuối Bộ kiểm soát đĩa Bộ kiểm soát bộ nhớ
Bản 1.3 C u trúc của hệ điều hành UNIX
Những gì dưới lời gọi hệ thống và trên phần cứng là hạt nhân Hạt nhân cung cấp
hệ thống tập tin, lập lịch CPU, quản trị bộ nhớ và những chức năng khác của hệ điều
Chương trình ứng dụng
Chương trình hệ thống thường trú
MS-DOS device driver
ROM BIOS device driver
Trang 31hành thông qua lời gọi hệ thống Tóm lại là toàn bộ chức năng của hệ thống được kết hợp trong một lớp Những chương trình hệ thống dùng những lời gọi hệ thống được hỗ trợ bởi hạt nhân để cung cấp những chức năng hữu ích như biên dịch và thao tác tập tin Lời gọi hệ thống định nghĩa một giao tiếp lập trình cho UNIX, đó là tập hợp những chương trình hệ thống thông thường trong đó có định nghĩa giao tiếp với người dùng
1.6.4.2 Cấu tr c phân lớp
Những phiên bản mới của UNIX được thiết kế để sử dụng phần cứng phức tạp hơn, do đó hệ điều hành được chia thành nhiều phần nhỏ hơn
Bằng cách sử dụng kỹ thuật topdown, những chức năng và đặc tính của hệ thống
được chia làm nhiều thành phần nhỏ Che dấu thông tin, không cho chương trình của người dùng có thể cài đặt những hàm truy xuất cấp thấp, thay vào đó là những lớp giao tiếp bên trong
Hệ điều hành được chia thành nhiều lớp: Lớp dưới cùng là phần cứng, lớp trên cùng là giao tiếp với người dùng Lớp hệ điều hành được cài đặt thành những đối tượng trừu tượng Thông thường một lớp của hệ điều hành bao gồm một số cấu trúc dữ liệu và các hàm có thể được gọi bởi lớp ở trên và bản thân nó gọi những chức năng của lớp bên dưới Mỗi lớp cài đặt chỉ sử dụng những thao tác do lớp dưới cung cấp Một lớp cũng không cần biết hệ điều hành được cài đặt như thế nào, nó chỉ cần biết những thao tác này làm gì thôi
Cấu trúc lớp này lần đầu tiên được thiết kế và áp dụng cho hệ điều hành THE
(Technische Hogeschool Eindhoven) Hệ thống này được chia thành sáu ớp như hình
sau:
Lớp 5: Chương trình của người dùng Lớp 4: Quản lý bộ đệm cho thiết bị nhập xuất Lớp 3: Điều khiển thiết bị nhập xuất
Lớp 2: Quản lý bộ nhớ / bộ nhớ ảo Lớp 1: Quản lý tiến trình
Lớp 0: Phần cứng hệ thống
Ví dụ hác như c u trúc ớp của hệ điều hành VENUS và OS/2:
Trang 32Lớp 6 Chương trình người dùng Lớp 5 Trình điều khiển thiết bị và bộ lập lịch
Giao tiếp với CTUD Mở rộng API
Hệ thống con Hệ thống con Hệ thống con
Hạt nhân
Hệ thống
Quản lý bộ nhớ Gửi các tác vụ Quản lý thiết bị
Divice driver
Divice driver
Divice driver
Divice driver
Trang 33n 6 C u trúc phân ớp của hệ điều hành UNIX
1.6.4.3 Máy ảo Virtual Machine)
Thông thường, một hệ thống máy tính bao gồm nhiều lớp Phần cứng ở lớp thấp nhất Hạt nhân ở lớp kế dùng các chỉ thị của phần cứng để tạo một tập hợp các lời gọi
hệ thống Các chương trình hệ thống có thể sử dụng hoặc là các lời gọi hệ thống hoặc
là các chỉ thị của phần cứng Vì vậy nó xem phần cứng và lời gọi hệ thống như cùng lớp
Một số hệ thống có tổ chức sao cho các chương trình ứng dụng có thể gọi d dàng các chương trình hệ thống Mặc dù chương trình hệ thống ở lớp cao hơn các phần khác
nhưng chương trình ứng dụng có thể xem mọi phần dưới nó là một phần của máy Lớp
ứng dụng này s dụng một hái niệm à máy o Ví dụ hệ điều hành máy ảo của IBM
Bằng cách sử dụng lập lịch cho CPU và kỹ thuật bộ nhớ ảo, hệ điều hành có thể tạo nhiều tiến trình ảo, mỗi tiến trình sẽ thực hiện trên một bộ xử lý và bộ nhớ riêng Những tiến trình này có những đặc điểm riêng như lời gọi hệ thống và hệ thống tập tin không được cung cấp phần cứng trực tiếp
Tài nguyên của hệ thống cũng được chia s để tạo những máy ảo Lập lịch CPU, chia s CPU cho người dùng Spooling và hệ thống tập tin được chia thành những th
Trang 34(card) đọc ảo và máy in ảo Một thiết bị đầu cuối terminal cũng cung cấp các chức năng tạo các thao tác màn hình ảo
Vấn đề phức tạp nhất của máy ảo là hệ thống đĩa Giả sử hệ thống chỉ có ba bộ điều khiển đĩa nhưng có tới bảy máy ảo Như vậy không thể gán cho mỗi máy ảo một
bộ điều khiển đĩa và giải pháp là xây dựng hệ thống đĩa ảo
Mặc dù khái niệm máy ảo rất hữu ích nhưng khó cài đặt Máy ảo phải thực hiện ở hai dạng: dạng giám sát Monitor và dạng người dùng Ngoài ra máy ảo c n phải giải
quyết các vấn đề về vận chuyển dữ liệu và thời gian
n So sánh giữa máy thực và máy o
C hai ợi đi m chính trong việc s dụng máy o Thứ nh t, bằng cách bảo vệ
hoàn toàn các tài nguyên hệ thống, máy ảo cung cấp mức độ bảo mật cao Thứ hai,
máy ảo cho ph p phát triển hệ thống được thực hiện mà không cần phá vỡ hoạt động hệ thống thông thường
Mỗi máy ảo hoàn toàn bị cô lập từ các máy ảo khác, vì thế chúng ta không gặp phải bất kỳ vấn đề bảo mật nào như tài nguyên hệ thống khác hoàn toàn được bảo vệ Thí dụ, các ứng dụng không được tin cậy được tải về từ Internet có thể được chạy trong một máy ảo riêng Một bất lợi của môi trường này là không có sự chia s tài nguyên
trực tiếp Hai tiếp cận cung cấp sự chia s được cài đặt Thứ nh t, có thể chia s một
Trang 35đĩa nhỏ Cơ chế này được làm mẫu sau một đĩa được chia s vật lý Thứ hai, có thể
định nghĩa một mạng của các máy ảo, mỗi máy ảo có thể gửi thông tin qua các mạng giao tiếp này nhưng nó được cài đặt bằng phần mềm
Những hệ thống máy ảo như thế là một phương tiện truyền thông hữu hiệu cho việc nghiên cứu và phát triển hệ điều hành Thông thường, thay đổi một hệ điều hành là một công việc khó Vì các hệ điều hành là các chương trình lớn và phức tạp, sự thay đổi trên một phần này có thể gây một lỗi khó hiểu trong những phần khác Sức mạnh của hệ điều hành làm cho trường hợp này là cực kỳ nguy hiểm Vì hệ điều hành thực thi trong chế độ kiểm soát, một thay đổi sai trong một con trỏ có thể gây lỗi và có thể phá hủy toàn hệ thống tập tin Do đó, cần phải kiểm tra tất cả thay đổi của hệ điều hành một cách cẩn thận
Tuy nhiên, hệ điều hành chạy trên máy và điều khiển hoàn toàn máy đó Do đó,
hệ thống hiện hành phải bị dừng và ngừng việc sử dụng trong khi những thay đổi được thực hiện và kiểm tra Thời điểm này thường được gọi là thời gian phát triển hệ thống
Vì nó làm cho hệ thống không sẵn dùng đối với người dùng nên thời gian phát triển hệ thống thường được lập thời biểu vào buổi tối hay cuối tuần, khi tải hệ thống thấp Một hệ thống máy ảo có thể loại trừ nhiều vấn đề này Người lập trình hệ thống được cung cấp chính máy ảo của họ, và phát triển hệ thống được thực hiện trên máy ảo thay vì trên máy vật lý thật sự Một hệ điều hành thông thường ít khi bị phá vỡ vìphát triển hệ thống Đương nhiên, muốn cài đặt phần mềm máy ảo đ i hỏi cấu hình phần
cứng phải mạnh
1.6.4.4 Mô hình Client-Server
Các hệ điều hành hiện đại thường chuyển dần các công việc của hệ điều hành ra các lớp bên ngoài nhằm thu nhỏ phần cốt lõi của hệ điều hành thành hạt nhân cực tiểu kernel sao cho chỉ phần hạt nhân này phụ thuộc vào phần cứng Để thực hiện được
điều này hệ điều hành xây dựng theo mô hình Client-Server , theo mô hình này hệ điều
hành bao gồm nhiều tiến trình đ ng vai trò Server c các chức năng chuy n biệt như
qu n tiến trình, qu n bộ nhớ, , phần hạt nhân của hệ điều hành chỉ thực hiện nhiệm vụ tạo cơ chế thông tin i n ạc giữa các tiến trình C ient và Server
Trong mô hình này, chức năng của hạt nhân chỉ là kiểm soát quá trình thông tin giữa Client và Server Bằng cách chia hệ điều hành thành những phần nhỏ, mỗi phần
Trang 36chỉ kiểm soát một mặt của hệ thống như các dịch vụ về tập tin, tiến trình, thiết bị đầu cuối, bộ nhớ, mỗi phần sẽ gọn hơn và d quản lý hơn Hơn nữa, tất cả Server thực hiện như những tiến trình ở mức độ người dùng user-mode không phải ở mức độ hạt nhân (kernel-mode , nên nó không truy xuất trực tiếp phần cứng Do đó, nếu hệ thống tập tin
bị lỗi, các dịch vụ về tập tin có thể bị hỏng nhưng nó thường không gây ảnh hưởng đến toàn bộ hệ thống
Một ưu điểm khác của mô hình Client-Server là nó có thể tương thích d dàng với mô hình hệ thống phân tán Nếu một Client giao tiếp với một Server bằng cách gửi những thông điệp, họ không biết là khi nào thông điệp đó đang được xử lý cục bộ tại máy hay được gửi vào mạng đến Server trên một máy từ xa Khi Client quan tâm đến, một yêu cầu được gửi đi và một trả lời đáp ứng di n ra như nhau
N ư vậy c c t ến tr n tron t ốn ược c a t n hai lo :
- Tiến trình bên ngoài hay tiến trình của chương trình người dùng được gọi là các tiến trình Client
- Tiến trình của hệ điều hành được gọi là tiến trình Server
Khi cần thực hiện một chức năng hệ thống các tiến trình Client sẽ gởi yêu cầu tới tiến trình Server tương ứng, tiến trình Server sẽ xử lý và trả lời kết quả cho tiến trình Client
N ận xét:
- Hệ thống này d thay đổi và d mở rộng hệ điều hành Để thay đổi các chức năng của hệ điều hành chỉ cần thay đổi ở Server tương ứng, để mở rộng hệ điều hành chỉ cần thêm các dịch vụ phía Server
- Các tiến trình Server của hệ điều hành hoạt động trong chế độ không đặc quyền nên không thể truy cập trực tiếp đến phần cứng, điều này giúp hệ thống được bảo vệ tốt hơn
Trang 37Hình 1.8 Mô hình C ient - Server
Trong mô hình này, chức năng của hạt nhân chỉ là kiểm soát quá trình thông tin giữa Client và Server Bằng cách chia hệ điều hành thành những phần nhỏ, mỗi phần chỉ kiểm soát một mặt của hệ thống như các dịch vụ về tập tin, tiến trình, thiết bị đầu cuối, bộ nhớ, mỗi phần sẽ gọn hơn và d quản lý hơn Hơn nữa, tất cả Server thực hiện như những tiến trình ở mức độ người dùng user-mode không phải ở mức độ hạt nhân (kernel-mode), nên nó không truy xuất trực tiếp phần cứng Do đó, nếu Server tập tin
bị lỗi, các dịch vụ về tập tin có thể bị hỏng nhưng nó thường không gây ảnh hưởng đến toàn bộ hệ thống
Một ưu điểm khác của mô hình Client-Server là nó có thể tương thích d dàng với mô hình hệ thống phân tán Nếu một Client giao tiếp với một Server bằng cách gửi những thông điệp, họ không biết là khi nào thông điệp đó đang được xử lý cục bộ tại máy hay được gửi vào mạng đến Server trên một máy từ xa Khi Client quan tâm đến, một yêu cầu được gửi đi và một trả lời đáp ứng di n ra như nhau
n Mô hình Client-Server trong hệ thông phân tán
Trang 38Hình vẽ sau đây cho thấy cấu trúc của hệ điều hành Windows NT Đây là một cấu trúc phức tạp với nhiều thành phần khác nhau và nó được xây dựng dựa trên mô hình
hệ điều hành Client/ Server
n C u trúc hệ điều hành Windows NT Tron cấu trúc n y c ún ta t ấy nổ rõ a ểm sau ây:
- Cấu trúc của Windows NT được chia thành hai mode: Kernel mode và User mode Các chương trình ứng dụng của người dùng chỉ chạy trong User mode, các dịch vụ của hệ điều hành chỉ chạy trong Kernel mode Nhờ vậy mà việc bảo
vệ các chương trình của người dùng cũng như các thành phần của hệ điều hành, trên bộ nhớ, được thực hiện d dàng hơn
- Trong User mode của Windows NT có chứa các hệ thống con môi trường như: OS/2 subsystem và POSIX subsystem, nhờ có các hệ thống con môi trường này
mà các ứng dụng được thiết kế trên các hệ điều hành khác vẫn chạy được trên hệ
Trang 39điều hành Windows NT Đây là điểm mạnh của các hệ điều hành Microsoft của
từ Windows NT
Chúng tôi sẽ giải thích rõ hơn về hai khái niệm Kernel mode và User mode, và các thành phần trong cấu trúc của hệ điều hành Windows NT ở phần sau, thông qua việc giới thiệu về hệ điều hành Windows 2000
1.7 MỘT SỐ HỆ ĐIỀU HÀNH HIỆN ĐẠI
Một trong những thành phần quan trọng của Windows95 là thành phần Thunking Nhờ có Thunking mà các module 16 bit có thể giao tiếp với các bản sao 32 bit của
chúng và ngược lại Thunking là một tập các thường trình, mà nó ánh xạ các địa chỉ để
cho ph p các ứng dụng phân đoạn 16 bit chia s hoàn toàn bộ nhớ phẳng với các ứng dụng 32 bit Hình vẽ sau đây cho thấy vai tr và vị trí của lớp Thunking trong Windows95
Hình 1.11 Lớp Thun ing trong Windows95
H ng Intel đưa ra vi xử lý 32 bit 80386 đầu tiên năm 1995, nhưng đến khi hệ điều hành Windows95 ra đời thì những điểm mạnh trong kiến trúc của nó mới được
Trang 40phát huy, vì Windows95 đ tận dụng được các điểm mạnh trong kiến trúc của Intel 32 bit để xây dựng thành một hệ điều hành 32 bit đủ mạnh Các hệ điều hành 32 bit có thể truy xuất bộ nhớ theo mô hình bộ nhớ phẳng, trong mô hình này hệ điều hành có thể đánh địa chỉ bộ nhớ theo kiểu tuyến tính lên đến 4Gb, tức là nó loại trừ được sự phân đoạn bộ nhớ mà chúng ta đ thấy trong các hệ điều hành 16 bit Khi chạy trên vi xử lý
80386 hệ điều hành Windows95 khai thác tối đa các điểm mạnh trong chế độ ảo của vi
xử lý này, vi xử lý 80386 có thể hoạt động ở các chế độ: thực real mode , bảo vệ protected mode và ảo virtual mode Chế độ ảo của 80386 c n được gọi là chế độ
8086 ảo, trong chế độ 8086 ảo ngoài việc cung cấp không gian bộ nhớ ảo cho các ứng dụng, 80386 c n cho ph p các ứng dụng chế độ 8086 ảo thực thi trong chế độ 8086 ảo, thực tế thực thi trong chế độ bảo vệ Các ứng dụng chạy trong chế độ bảo vệ được hệ điều hành bảo vệ trên bộ nhớ và được truy xuất một không gian bộ nhớ lớn hơn đến 4Gb bộ nhớ RAM Nhờ có chế độ 8086 ảo mà Windows95 có thể cho chạy nhiều ứng dụng đồng thời, kể cả các ứng dụng 16 bit của DOS và các ứng dụng 32 bit của Windows, trên bộ nhớ và các ứng dụng này được hệ điều hành bảo vệ để các ứng dụng không truy xuất bất hợp lệ lên các vùng nhớ của nhau, nếu có một ứng dụng bị hỏng thì các ứng dụng c n lại vẫn hoạt động bình thường Windows95 xây dựng các máy ảo DOS để chạy các ứng dụng 16 bit của DOS
Intel 80386 là một vi xử lý 32 bit, nhưng nếu sử dụng với hệ điều hành 16 bit thì các hệ điều hành này xem nó như là các vi xử lý 80286 16 bit, nên khả năng quản lý bộ nhớ của nó sẽ bị giới hạn Việc xử lý dữ liệu trong môi trường 32 bit cũng có nhiều điểm lợi hơn trong môi trường 16 bit Cùng một ứng dụng đó nhưng nếu chạy trong môi trường 16 bit thì nó phải chia thành các phân đoạn 16 bit và chỉ có thể truy xuất dữ liệu trong không gian 64Kb, nhưng khi chạy trong môi trường 32 bit thì nó không cần chia nhỏ và có thể truy xuất dữ liệu trong không gian bộ nhớ 4Gb, trong trường hợp này dữ liệu được tham chiếu theo kiểu tuyến tính nên tốc độ truy xuất được cải thiện hơn
1.7.2 Hệ điều hành Windows 2000
Windows 2000 được thiết kế để chạy trên các kiến trúc phần cứng khác nhau như: Các hệ thống dựa trên nền Intel CISC và RISC, Alpha AXP, Motorola PowerPC, Nó được viết bởi C và C++, ngôn ngữ assembly chỉ được sử dụng để viết các thành phần giao tiếp trực tiếp với phần cứng, m ngôn ngữ assembly không chỉ tồn tại trong kernel