Giáo trình Nguyên lý hệ điều hành - Nguyễn Văn Hưng

BỘ LAO ĐỘNG – THƯƠNG BINH VÀ XÃ HỘI  
TỔNG CỤC DẠY NGHỀ  
GIÁO TRÌNH  
Môn học: Nguyên lý hệ điều hành  
NGHỀ: QUẢN TRỊ MẠNG  
TRÌNH ĐỘ: CAO ĐẲNG NGHỀ  
(Ban hành kèm theo Quyết định số:120/QĐ-TCDN ngày 25/02/2013  
của Tổng cục trưởng Tổng cục dạy nghề)  
Hà Nội, năm 2013  
1
LỜI GIỚI THIỆU  
Trong hệ thống kiến thức chuyên ngành trang bị cho sinh viên  
nghề Quản trị mạng máy tính, môn học Nguyên lý hệ điều hành góp  
phần cung cấp những nội dung liên quan đến việc mô tả các phương  
pháp giải quyết các bài toán điều khiển hoạt động của hệ thống máy tính  
Các nội dung chính được trình bày trong tài liệu này gồm các  
chương:  
-Giới thiệu chung về hệ điều hành  
- Điều khiển dữ liệu  
- Điều khiển bộ nhớ  
- Điều khiển CPU và Tiến trình  
- Hệ điều hành đa xử lý  
Mặc dầu có rất nhiều cố gắng, nhưng không tránh khỏi những khiếm  
khuyết, rất mong nhận được sự đóng góp ý kiến của độc giả để giáo trình  
được hoàn thiện hơn.  
Hà Nội, ngày 25 tháng 02 năm 2013  
Tham gia biên soạn  
1. Chủ biên Ths. Nguyễn Văn Hưng  
2. CN Trương Văn Hiền  
 
2
MạC LạC  
3
4
5
NGUYÊN LÝ HỆ ĐIỀU HÀNH  
Mã môn học:MH 10  
Vị trí, tính chất, ý nghĩa và vai trò môn học:  
- Vị trí: Môn học được bố trí sau khi sinh viên học xong các môn học chung,  
trước các môn học, mô đun đào tạo chuyên môn nghề.  
- Tính chất: Là môn học cơ sở.  
- Ý nghĩa và vai trò: Đây là môn học cơ sở ngành của các ngành liên quan  
đến công nghệ thông tin, cung cấp cho sinh viên các kiến thức cơ bản về hệ  
điều hành để làm nền tản cho việc lập trình giải quyết các vấn đề cần thiết,  
tối ưu hóa hệ thống máy tính.  
Mục tiêu của môn học:  
- Hiểu vai trò và chức năng của hệ điều hành trong hệ thống máy tính;  
- Biết các giai đoạn phát triển của hệ điều hành;  
- Hiểu các nguyên lý thiết kế, thực hiện của hệ điều hành;  
- Hiểu cách giải quyết các vấn đề phát sinh trong hệ điều hành.  
- Bố trí làm việc khoa học đảm bảo an toàn cho người và phương tiện học  
tập.  
Nội dung chính của môn học (danh sách các chương mục...):  
Số  
Tên chương, mục  
Thời gian  
6
TT  
Kiểm  
Thực hành tra* (LT  
hoặc TH)  
Tổng  
số  
Lý  
thuyết  
I
Tổng quan về hệ điều  
hành  
5
5
0
0
Khái niệm về hệ điều hành  
Phân loại hệ điều hành  
Sơ lược lịch sử phát triển  
của HĐH  
2
2
1
2
2
1
0
0
0
0
0
0
II  
15  
9
5
1
Điều khiển dữ liệu  
Các phương pháp tổ chức và  
truy nhập dữ liệu  
5
3
2
0
2
1
1
0
Bản ghi và khối  
Điều khiển buffer  
Quy trình chung điều khiển  
vào – ra  
2
2
1
2
1
0
0
0
Tổ chức lưu trữ dữ liệu trên  
bộ nhớ ngoài  
4
2
1
1
III Điều khiển bộ nhớ  
Quản lý và bảo vệ bộ nhớ  
Điều khiển bộ nhớ liên tục  
theo đa bài toán  
20  
2
8
10  
2
3
9
0
5
1
0
0
Điều khiển bộ nhớ gián  
đoạn  
10  
4
5
1
IV  
Điều khiển CPU, Điều  
khiển quá trình  
25  
12  
12  
1
Các khái niệm cơ bản  
Trạng thái của quá trình  
Điều phối quá trình  
Các thuật toán lập lịch  
Hệ thống ngắt  
2
5
3
10  
1
4
2
2
1
4
1
2
0
3
2
6
0
1
0
0
0
0
0
1
Hiện tượng bế tắc  
V
Hệ điều hành đa xử lý  
10  
7
2
1
Hệ điều hành đa xử lý tập  
5
3
2
0
trung  
Hệ điều hành đa xử lý phân  
5
3
1
1
tán  
Cộng  
75  
43  
28  
4
7
CHƯƠNG 1:GIỚI THIỆU CHUNG VỀ HỆ ĐIỀU HÀNH  
Mã chương: MH10-01  
Mục tiêu:  
- Nắm được yêu cầu cần có hệ điều hành;  
- Nắm được khái niệm hệ điều hành, chức năng, phân loại và các thành phần  
cơ bản trong hệ điều hành;  
- Thực hiện các thao tác an toàn với máy tính.  
1. Khái niệm về hệ điều hành  
Mục tiêu: Nắm được yêu cầu cần có hệ điều hành;  
Nắm được khái niệm hệ điều hành.  
1.1. Tài nguyên hệ thống  
Tài nguyên của một trung tâm máy tính được tổng hợp từ ba thành tố,  
đó là tài nguyên về phần cứng, tài nguyên về phần mềm và tài nguyên về  
nguồn nhân lực của trung tâm máy tính đó.  
Trong các tài liệu giới thiệu về một trung tâm máy tính bất kỳ, các số  
liệu thống kê về phần cứng (số lượng và chủng loại máy tính, hệ thống thiết bị  
     
8
ngoại vi, khả năng liên kết với môi trường ngoài v.v…) luôn là những yếu tố  
được quan tâm sớm nhất và là thành tố dễ nhận biết nhất về sức mạnh của  
trung tâm máy tính đó.  
Tài nguyên về phần mềm cũng được chú ý thông qua các thông tin về  
hệ điều hành được sử dụng, về các phần mềm ứng dụng đã có tại cơ sở tính  
toán đó. Hiện nay, tại những trung tâm tính toán mạnh, giá trị (tính theo tiền)  
thực sự của tài nguyên phần mềm lại cao hơn và vượt trội nhiều so với giá trị  
của tài nguyên phần cứng.  
Tài nguyên về nguồn nhân lực cũng được chú ý, tuy rằng trong một số  
trường hợp, thành tố này lại khó nhận biết và khó đánh giá hơn so hai loại tài  
nguyên đã nói ở trên. Năng lực về nguồn nhân lực trong hệ thống nhằm đảm  
bảo việc thực hiện chức năng bảo trì, phục vụ và phát triển hệ thống (kỹ sư hệ  
thống, kỹ thuật viên, thao tác viên v.v…) thực sự lại đánh giá hơn rất nhiều so  
với phần cứng và phần mềm.  
Tuy nhiên, trong giáo trình này, chúng ta hạn chế trong một phạm vi  
tiếp cận là mọi công việc của hệ điều hành bắt đầu từ hệ thống phần cứng có  
sẵn và hệ điều hành cần phải hoạt động nhằm phát huy cao nhất năng lực của  
hệ thống phần cứng đó và vì vậy chúng ta chỉ đề cập đến tài nguyên về phần  
cứng (có thể kể tới một phần về tài nguyên phần mềm) và định hướng tới vấn  
đề phát huy hiệu quả khai thác các tài nguyên đó.  
Để định hướng tới mục tiêu phát huy hiệu quả các thành phần trong tài  
nguyên phần cứng, cần xem xét một số đặc trưng cơ bản và đánh giá giá trị  
của mỗi thành phần trong hệ thống phần cứng, hướng tới mục đích đưa ra  
được các chiến lược ưu tiên thích đáng (hoặc khả dụng) đối với mỗi thành  
phần khi xây dựng hệ thống các chương trình điều khiển sự hoạt động của  
máy tính.  
Theo cách tiếp cận của hệ điều hành, các tài nguyên điển hình thuộc  
phần cứng bao gồm: thiết bị xử lý trung tâm (CPU), bộ nhớ trong, và hệ thống  
vào – ra (kênh, thiết bị điều khiển thiết bị vào ra và thiết bị vào ra, bộ nhớ  
ngoài v.v…). CPU và bộ nhớ trong thuộc và khu vực trung tâm còn hệ thống  
vào – ra thường được xếp vào khu vực ngoại vi của hệ thống máy tính.  
Trong các thiết bị nói trên, đáng chú ý nhất phải kể đến là CPU và bộ  
nhớ trong.  
• Bộ xử lý trung tâm (Central Processing Unit-CPU)  
Trước hết chúng ta xem xét về các đặc trưng liên quan đến CPU. Việc  
đánh giá tài nguyên CPU về cơ bản cũng dựa trên các đặc trưng này: tốc  
độ xử lý, độ dài từ máy, phương pháp thiết kế hệ lệnh máy trong CPU.  
Tốc độ xử lý là thông số thể hiện mức độ làm việc nhanh chậm của  
CPU dựa trên các đơn vị biểu diễn tốc độ. Tốc độ xử lý của CPU thường  
được tính theo tần số đồng hồ nhịp (với đơn vị là MHz-triệu nhịp trong 1  
9
giây) khi xem xét tần số đồng hồ nhịp hoặc số lượng phép tính cơ bản  
được thực hiện trong một giây (với đơn vị là MIPS – Million Instruction  
Per Second – triệu phép tính cơ bản trong một giây) khi xem xét theo tốc  
độ thực hiện phép tính (phép cộng tĩnh – không dấu của một CPU thường  
được coi là phép tính cơ bản của CPU đó). Thông thường, đơn vị đo MHz  
được dùng cho một CPU cụ thể hoặc một máy vi tính còn đơn vị đo MIPS  
được dùng cho một hệ thống CPU của một máy tính lớn.  
Độ dài từ máy: Từ máy là lượng thông tin đồng thời mà CPU xử lý  
trong một nhịp làm việc. Độ dài từ máy chính là số lượng bit nhị phân của  
toán hạng đối số trong phép tính cơ bản của CPU. Trong thời gian gần đây,  
chúng ta đã quen thuộc với các CPU 8 bit, 16 bit, 32 bit, 64 bit,… và số  
lượng bit nói trên chính là độ dài từ máy.  
Độ dài của từ máy có quan hệ với tốc độ xử lý. Khi nói đến năng lực hoạt  
động (tốc độ xử lý thông tin) thực sự của một CPU mà chỉ nói đến tốc độ xử  
lý mà không nói kèm theo độ dài từ máy là chưa hoàn toàn đầy đủ. Điều đó có  
thể được diễn giải theo phát biểu như sau “năng lực hoạt động thực sự  
củaCPU được đánh giá thông qua tốc độ xử lý và độ dài từ máy”.  
• Bộ nhớ trong (Operative Memory-OM) có một số đặc trưng tiêu biểu  
như sau:  
Dung lượng bộ nhớ: Khả năng đồng thời lưu trữ thông tin của bộ nhớ  
trong. Hiện tại dung lượng của bộ nhớ trong từ vài MB đến vài GB.  
Đặc trưng tiếp theo của bộ nhớ trong phù hợp với nguyên lý thứ hai  
theo Von Neumann là: Bộ nhớ được địa chỉ hóa để truy nhập. Đa số các  
máy tính được địa chỉ hóa theo byte và trong một số trường hợp lại được  
địa chỉ hóa theo từ máy.  
Địa chỉ đầu tiên trong bộ nhớ là địa chỉ 0. Lý do của việc chọn địa chỉ  
đầu tiên là 0 liên quan đến tính chia hết, bởi số 0 chia hết cho mọi số. Khi  
phân phối bộ nhớ trong cho một đối tượng, trong nhiều trường hợp, địa chỉ  
vùng bộ nhớ trong của đối tượng phải chia hết cho độ dài vùng bộ nhớ  
dành cho đối tượng đó hoặc chia hết cho số nào đó (ví dụ, phân phối cho  
một chương trình trong MS-DOS được bắt đầu bởi địa chỉ đoạn là địa chỉ  
chia hết cho 16).  
Một đặc trưng (hay cũng vậy là một yêu cầu) mang tính bản chất đối  
với bộ nhớ trong là: Thời gian truy cập bộ nhớ trong tới mọi địa chỉ nhớ  
phải đồng nhất; không thể có sự khác biệt giữa thời gian truy cập tới địa  
chỉ cao với thời gian truy cập tới địa chỉ thấp. Từ đặc trưng này dẫn đến  
việc đặt ra một yêu cầu là phải tổ chức bộ nhớ trong theo các khối phân  
cấp để cục bộ dần và việc cục bộ dần như vậy sẽ làm cho việc truy nhập  
được cân bằng. Nguồn gốc của yêu cầu này liên quan đến tính xác định  
của thuật toán, hay nói cách khác đi, yêu cầu này nhằm mục tiêu đảm bảo  
độ tin cậy của hệ thống máy tính. Chúng ta thường thấy bộ nhớ được cấu  
10  
trúc từ các “ thanh bộ nhớ”, mỗi thanh bộ nhớ lại có thể được phân nhỏ  
hơn và việc truy nhập bộ nhớ theo cách phân cấp dần theo từng thanh,  
trong mỗi thanh lại theo từng bộ phận nhỏ hơn có trong thanh đó v.v… cho  
đến khi truy nhập tuần tự trong phần nhỏ nhất chỉ có sai khác thời gian  
không đáng kể.  
Để tăng tốc độ truy nhập của CPU đối với bộ nhớ trong, người ta  
thường gắn CPU với bộ nhớ tạm thời của CPU (được gọi là bộ nhớ cache của  
CPU). Bộ nhớ cache là thiết bị nhớ đặc biệt với tốc độ truy cập của CPU tới  
cache của nó cao hơn rất nhiều so với tốc độ truy cập vào bộ nhớ trong. Trong  
cache chứa một phần nội dung của bộ nhớ trong thường là phần bộ nhớ hiện  
thời (chương trình và dữ liệu) được CPU đang hướng tới. Quá trình hướng  
truy nhập bộ nhớ (theo địa chỉ) của CPU được bắt đầu từ việc hướng tới  
cache, nếu cache chứa phần bộ nhớ đó thì việc hướng địa chỉ kết thúc và thực  
hiện công việc, ngược lại thực hiện việc hướng tới bộ nhớ trong theo quy tắc  
thông thường.  
Chương trình chỉ chạy được khi chương trình và dữ liệu tương ứng của  
chương trình đó phải có mặt tại bộ nhớ trong (chính xác hơn là chỉ cần bộ  
phận hiện thời của chương trình và dữ liệu liên quan đến bộ phận đó nằm  
trong bộ nhớ trong). Cách thức sử dụng bộ nhớ trong đóng vai trò quan trọng  
nhằm đảm bảo chất lượng hoạt động của hệ thống và vì vậy, bài toán điều  
khiển bộ nhớ trong có độ ưu tiên cao chỉ sau bài toán điều khiển CPU.  
• Hệ thống ngoại vi  
Hệ thống ngoại vi đảm bảo việc chuyển đổi thông tin giữa môi trường  
ngoài và khu vực trung tâm. Có sự phân cấp trong hệ thống ngoại vi: gần  
khu vực trung tâm nhất là kênh, sau đó là thiết bị điều khiển thiết bị ngoại  
vi và ngoài cùng là thiết bị ngoại vi.  
1.2. Khái niệm hệ điều hành  
Hệ thống máy tính là hệ thống kết hợp giữa thiết bị phần cứng và vấn  
đề điều khiển phân phối công việc trong toàn hệ thống. Để giải quyết bài toán  
này, không thể dùng phương pháp thủ công mà cần có cơ chế tự động hóa, tức  
cần có một chương trình điều khiển hoạt động của hệ thống máy tính. Chương  
trình đó gọi là hệ điều hành, đây là thành phần quan trọng của hệ thống máy  
tính.  
-Xét về phía người sử dụng thì hệ điều hành cần phải tạo được môi  
trường giao diện giữa người sử dụng và máy tính.Thông qua môi trường này  
cho phép người sử dụng đưa ra các lệnh, chỉ thị điều khiển hoạt động của máy  
tính.  
-Về phía các chương trình ứng dụng thì hệ điều hành phải tạo môi  
trường để các chương trình hoạt động, cung cấp các cơ chế cho phép kích  
hoạt hoặc loại bỏ các chương trình ứng dụng.  
 
11  
-Về phía phần cứng thì hệ điều hành phải quản lý các thiết bị một cách  
có hiệu quả, khai thác được hết các khả năng của thiết bị, cung cấp cho các  
chương trình và người sử dụng các tài nguyên phần cứng khi có yêu cầu, thu  
hồi khi cần thiết.  
Hình 1.1 Mô hình trừu tượng của hệ thống máy tính  
Vì vậy, hệ điều hành là một tập hợp các chương trình hệ thống có chức  
năng tạo môi trường giao diện cho người dùng, tạo môi trường hoạt động cho  
các chương trình ứng dụng, quản lý và khai thác hiệu quả các thiết bị phần  
cứng.  
2. Phân loại hệ điều hành  
Mục tiêu: Nắm được chức năng, phân loại và các thành phần cơ bản  
trong hệ điều hành.  
Nắm được cách thức tải hệ điều hành.  
2.1. Các thành phần của hệ điều hành  
Theo định nghĩa trên đây, hệ điều hành là một tập hợp các chương trình  
đã được cài đặt sẵn, mỗi chương trình đảm nhận một chức năng nào đó trong  
hệ thống chức năng của hệ điều hành. Một trong những nguyên tắc phổ biến  
nhất để nhận biết các thành phần của hệ điều hành là dựa theo chức năng của  
các chương trình có trong thành phần đó. Theo nguyên tắc này thì các thành  
phần cơ bản của hệ điều hành là thành phần điều khiển (control programs),  
thành phần ứng dụng (application programs, còn gọi thành phần xử lý) và các  
chương trình tiện ích (utilities).  
   
12  
• Thành phần điều khiển  
Thành phần điều khiển liên quan đến chức năng điều khiển, phân phối  
công việc của hệ điều hành. Khi một chương trình điều khiển hoạt động,  
nó không cho ra một sản phẩm mới (sản phẩm ở đây là các File trên đĩa từ,  
một kết quả được in ra) mà cho tác động đối với sự điều khiển hoạt động  
của máy tính. Dưới đây liệt kê một số môdun chương trình điển hình thuộc  
vào thành phần điều khiển:  
-Chương trình dẫn dắt (điều phối chính, monitor, chương trình giải  
thích lệnh): Tiếp nhận các nhiệm vụ ( yêu cầu của người dùng) từ dòng  
vào các nhiệm vụ, sắp xếp phân phối lịch thực hiện v.v…đối với từng  
nhiệm vụ, sau đó trả lại kết quả cho người dùng.  
-Điều khiển quá trình (bài toán): Thực hiện luân phiên các quá trình  
(process; bài toán –task) đang tồn tại trong bộ nhớ, mỗi bài toán có các  
khối chứa thông tin liên quan để chuyển việc thực hiện từ quá trình này  
sang quá trình khác sao cho việc sử dụng CPU đạt hiệu quả.  
-Điều khiển dữ liệu: Tổ chức lưu trữ dữ liệu trên vật dẫn ngoài và đảm  
bảo truy nhập dữ liệu theo yêu cầu của chương trình người dùng. Công  
việc vào – ra giữa bộ nhớ ngoài và bộ nhớ trong cũng như do liên quan đến  
một hệ thống thiết bị ngoại vi đa dạng và phong phú nên điều khiển dữ liệu  
cũng rất đa dạng.  
-Môdun chương trình tải (loader): Đảm bảo việc đưa các môdun  
chương trình từ bộ nhớ ngoài vào bộ nhớ trong tại một địa chỉ trong bộ  
nhớ trong. Trong nhiều trường hợp, môdun chương trình tải còn đảm bảo  
việc chuyển điều khiển để thực hiện (execute) chương trình được tải vào;  
-và nhiều thành phần khác…  
• Thành phần ứng dụng  
Thành phần ứng dụng có trong hệ điều hành bao gồm những chương  
trình mà khi được thực hiện sẽ tạo ra một sản phẩm mới. Các bộ dịch ngôn  
ngữ lập trình (compiler), các chương trình tính toán, các chương trình soạn  
thảo v.v…được các hệ điều hành cung cấp nhằm giúp cho người sử dụng  
có thể chọn lựa phần mềm thích hợp trong lĩnh vực khai thác máy tính của  
mình. Thành phần ứng dụng rất đa dạng do tính chất đa dạng của yêu cầu  
người dùng.  
Thành phần điều khiển hướng đích là sự hiệu quả khai thác máy tính;  
còn thành phần ứng dụng hướng đích là việc thỏa mãn nhu cầu của người  
dùng, tăng hiệu suất sử dụng máy tính đối với từng lớp người dùng.  
• Các chương trình tiện ích  
Các chương trình tiện ích cung cấp thêm cho người dùng các phương  
tiện phần mềm làm việc với hệ thống máy tính thuận tiện hơn. Các chương  
trình liên quan đến cách thức thâm nhập hệ thống, các chương trình sao  
13  
chép, in ấn nội dung của File, các chương trình làm việc với đĩa v.v…được  
xếp vào thành phần tiện ích.  
2.2. Phân loại hệ điều hành  
Một trong những nguyên tắc phổ biến nhất để phân loại các hệ điều  
hành (truyền thống) là dựa theo tính chất hoạt động của thành phần điều khiển  
và việc phân loại hệ điều hành ở đây được thực hiện theo nguyên tắc đó. Tính  
chất hoạt động của chương trình điều khiển liên quan đến cách thức đưa  
chương trình vào bộ nhớ trong, chọn chương trình đã có ở bộ nhớ trong ra  
thực hiện v.v… Theo cách thức phân loại này, có thể kể đến hệ điều hành đơn  
chương trình, hệ điều hành đa chương trình và hệ điều hành thời gian thực.  
a. Hệ điều hành đơn chương trình  
Trong hệ điều hành đơn chương trình, toàn bộ hệ thống máy tính phục  
vụ một chương trình từ lúc bắt đầu khi chương trình đó được đưa vào bộ nhớ  
trong cho đến thời điểm kết thúc chương trình đó. Khi một chương trình  
người dùng đã được đưa vào bộ nhớ thì nó chiếm giữ mọi tài nguyên của hệ  
thống và vì vậy chương trình của người dùng khác không thể được đưa vào bộ  
nhớ trong.  
Do các thiết bị vào ra có tốc độ làm việc chậm, nên người ta đã cải tiến  
chế độ đơn chương trình theo hướng sử dụng cách thức đặc biệt (có tên gọi là  
SPOOLING: Simultaneous Peripheral Operation OnLine; đôi lúc dùng thuật  
ngữ chế độ SPOOLING cũng với nghĩa là cách thức này), mà theo cách thức  
này, mọi vấn đề vào ra liên quan đến chương trình được thực hiện thông qua  
đĩa từ. Chương trình người dùng, thông qua hệ điều hành, chỉ thực hiện vào ra  
với đĩa từ, còn việc vào ra giữa đĩa từ với các thiết bị khác lại do cơ chế khác  
đảm nhận và do vậy, thời gian giải bài toán (thời gian chương trình thực hiện)  
giảm đi.  
b. Hệ điều hành đa chương trình  
Đối với hệ điều hành đa chương trình thì trong máy tính, tại mỗi thời  
điểm có nhiều chương trình đồng thời có mặt ở bộ nhớ trong. Các chương  
trình này đều có nhu cầu được phân phối bộ nhớ và CPU để thực hiện. Như  
vậy, bộ nhớ, CPU, các thiết bị ngoại vi…là các tài nguyên của hệ thống được  
chia sẽ cho các chương trình đó. Đặc điểm quan trọng cần lưu ý là các chương  
trình này phải được “bình đẳng” khi giải quyết các đòi hỏi về tài nguyên. Khái  
niệm chương trình nói trong chế độ đa chương trình được dùng để chỉ cả  
chương trình người dùng lẫn chương trình của hệ điều hành.  
Khi so sánh với hệ điều hành đơn chương trình, có thể nhận thấy ngay  
một điều là đối với một chương trình cụ thể thì trong chế độ đơn chương  
trình, chương trình đó sẽ kết thúc nhanh hơn (thời gian chạy ngắn hơn) so với  
khi nó chạy trong chế độ đa chương trình, nhưng bù lại, trong một khoảng  
thời gian xác định thì theo chế độ đa chương trình sẽ hoàn thiện được nhiều  
 
14  
chương trình (giải được nhiều bài toán) hơn, do đó hiệu quả sử dụng máy tính  
cao hơn.  
Như đã đánh giá ở phần trên, một trong những tài nguyên quan trọng  
nhất của hệ thống máy tính là CPU và việc chia sẽ CPU là một trong những  
dạng điển hình của việc chia sẽ tài nguyên.  
• Hệ điều hành hoạt động theo chế độ mẻ  
Đây là loại hệ điều hành định hướng tới mục tiêu làm cực đại số lượng  
các bài toán được giải quyết trong một khoảng đơn vị thời gian (có nghĩa là  
trong một khoảng thời gian thì hướng mục tiêu hoàn thiện được càng nhiều  
chương trình càng tốt). Ở nước ta những năm trước đây, các máy tính dùng hệ  
điều hành OS, DOS phổ biến hoạt động theo chế độ mẻ (batch).  
Các hệ điều hành theo chế độ mẻ lại có thể phân biệt thành hai loại điển  
hình là MFT và MVT.  
MFT: Multiprogramming with Fixed number of Tasks  
Khi hệ thống làm việc, đã quy định sẵn một số lượng cố định các bài  
toán đồng thời ở bộ nhớ trong: bộ nhớ trong được chia thành một số vùng nhớ  
cố định, các vùng này có biên cố định mà mỗi vùng được dùng để chứa một  
chương trình. Mỗi chương trình người dùng chỉ được đưa vào một vùng nhớ  
xác định tương ứng với chương trình đó. Một chương trình chỉ có thể làm việc  
trong giới hạn của vùng bộ nhớ trong đang chứa nó.  
MVT: Multiprogramming with Variable number of Tasks  
Khác với chế độ MFT, trong chế độ MVT, bộ nhớ trong không bị chia  
sẵn thành các vùng, việc nạp chương trình mới vào bộ nhớ trong còn được  
tiếp diễn khi mà bộ nhớ trong còn đủ để chứa nó.  
• Chế độ phân chia thời gian (Time Shared System:TSS)  
Chế độ phân chia thời gian là chế độ hoạt động điển hình của các hệ  
điều hành đa người dùng (multi-users). Hệ điều hành hoạt động theo chế độ  
này định hướng phục vụ trực tiếp người dùng khi chương trình của người  
dùng đó đang thực hiện, làm cho giao tiếp của người dùng với máy tính là hết  
sức thân thiện. Liên quan đến hệ điều hành hoạt động theo chế độ này là các  
khái niệm lượng tử thời gian, bộ nhớ ảo v.v…  
Trong hệ TSS, tại cùng thời điểm có nhiều người dùng đồng thời làm  
việc với máy tính: mỗi người làm việc với máy thông qua trạm cuối (terminal)  
và vì vậy, hệ thống đã cho phép máy tính thân thiện với người dùng.  
Hệ điều hành phân phối CPU lần lượt cho từng chương trình người  
dùng, mỗi chương trình được chiếm giữ CPU trong một khoảng thời gian như  
nhau (khoảng thời gian đó được gọi là lượng tử thời gian): có thể thấy phổ  
biến về lượng tử thời gian điển hình là khoảng 0,05s. Máy tính làm việc với  
tốc độ cao, chu kỳ quay lại phục vụ cho từng chương trình người dùng là rất  
nhanh, mỗi người đều có cảm giác rằng mình chiếm toàn bộ tài nguyên hệ  
thống.  
15  
Bộ nhớ luôn chứa chương trình của mọi người dùng, vì vậy xảy ra tình  
huống toàn bộ bộ nhớ trong không đủ để chứa tất cả chương trình người dùng  
hiện đang thực hiện, vì thế đối với hệ điều hành TSS nảy sinh giải pháp sử  
dụng bộ nhớ ảo: sử dụng đĩa từ như vùng mở rộng không gian nhớ của bộ nhớ  
trong.  
c. Hệ điều hành thời gian thực  
Nhiều tài nguyên trong lĩnh vực điều khiển cần được giải quyết không  
muộn hơn một thời điểm nhất định, và vì vậy, đối với các máy tính trong lĩnh  
vực đó cần hệ điều hành thời gian thực (RT: Real Time). Trong hệ thời gian  
thực, mỗi bài toán được gắn với một thời điểm thời gian (deadtime) và bài  
toán phải được giải quyết không muộn hơn thời điểm đã cho đó: Nếu bài toán  
hoàn thiện muộn hơn thời điểm đó thì việc giải quyết nó trở nên không còn có  
ý nghĩa nữa. Hệ thời gian thực có thể được coi như một trường hợp của hệ đa  
chương trình hoạt động theo chế độ mẻ có gắn thêm thời điểm kết thúc cho  
mỗi bài toán.  
2.3. Tính chất cơ bản của hệ điều hành  
a)Tin cậy  
Mọi hoạt động, mọi thông báo của HĐH đều phải chuẩn xác, tuyệt đối.  
chỉ khi nào biết chắc chắn là đúng thì HĐH mới cung cấp thông tin cho người  
sử dụng. Để đảm bảo được yêu cầu này, phần thiết bị kỹ thuật phải có những  
phương tiện hỗ trợ kiểm tra tính đúng đắn của dữ liệu trong các phép lưu trữ  
và xử lý. Trong các trường hợp còn lại HĐH thông báo lỗi và ngừng xử lý  
trao quyền quyết định cho người vận hành hoặc người sử dụng.  
b) An toàn  
Hệ thống phải tổ chức sao cho chương trình và dữ liệu không bị xoá  
hoặc bị thay đổi ngoài ý muốn trong mọi trường hợp và mọi chế độ hoạt động.  
Điều này đặc biệt quan trọng khi hệ thống là đa nhiệm. Các tài nguyên khác  
nhau đòi hỏi những yêu cầu khác nhau trong việc đảm bảo an toàn.  
c) Hiệu quả  
Các tài nguyên của hệ thống phải đợc khai thác triệt để sao chon gay cả  
điều kiện tài nguyên hạn chế vẫn có thể giải quyết những yêu cầu phức tạp.  
Một khía cạnh quan trọng của đảm bảo hiệu quả là duy trì đồng bộ trong toàn  
bộ hệ thống, không để các thiết bị tốc độ chậm trì hoãn hoạt động của toàn bộ  
hệ thống.  
d) Tổng quát theo thời gian  
HĐH phải có tính kế thừa, đồng thời có khả năng thích nghi với những  
thay đổi cso thể cso trong tương lai. Tính thừa kế là rất quan trọng ngay cả với  
các hệ điều hành thế hệ mới. Đối với việc nâng cấp, tính kế thừa là bắt buộc.  
Các thao tác, thông báo là không được thay đổi, hoặc nếu có thì không đáng  
kể và phải được hướng dẫn cụ thể khi chuyển từ phiên bản này sang phiên bản  
 
16  
khác, bằng các phương tiện nhận biết của hệ thống. Đảm bảo tính kế thừa sẽ  
duy trì và phát triển đội ngũ người sử dụng-một nhân tố quan trọng để HĐH  
có thể tồn tại. Ngoài ra người sử dụng cũng rất quan tâm, liệu những kinh  
nghiệm và kiến thức của mình về HĐH hiện tại còn được sử dụng bao lâu  
nữa. Khả năng thích nghi với những thay đổi đòi hỏi HĐH phải được thiết kế  
theo một số nguyên tắc nhất định.  
e) Thuận tiện  
Hệ thống phải dễ dàng sử dụng, có nhiều mức hiệu quả khác nhau tuỳ  
theo kiến thức và kinh nghiệm người dùng. Hệ thống trợ giúp phong phú để  
người sử dụng có thể tự đào tạo ngay trong quá trình khai thác.  
Trong một chừng mực nào đó, các tính chất trên mâu thuẫn lẫn nhau. Mỗi  
HĐH có một giải pháp trung hoà, ưu tiên hợp lý ở tính chất này hay tính chất  
khác.  
2.4. Phân lớp các chương trình trong thành phần điều khiển  
Một trong những cách phân lớp các chương trình thuộc thành phần điều  
khiển là dựa theo bài toán mà lớp chương trình đó giải quyết. Các bài toán cơ  
bản nhất nảy sinh trong quá trình điều khiển hệ thống máy tính được liệt kê  
như dưới đây.  
• Điều khiển dữ liệu  
Điều khiển dữ liệu (điều khiển file, điều khiển vào ra) bao gồm các  
môdun chương trình của hệ điều hành liên quan đến việc tổ chức lưu trữ và  
quản lý dữ liệu trên vật dẫn ngoài, chuyển dữ liệu từ bộ nhớ ngoài vào bộ nhớ  
trong và ngược lại. Quá trình chuyển dữ liệu thường được thực hiện qua hai  
giai đoạn: chuyển đổi dữ liệu thực sự giữa khu vực ngoại vi với bộ nhớ trong  
và chuyển đổi dữ liệu nội bộ bộ nhớ trong. Tính đa dạng của thiết bị ngoài  
dẫn tới việc có nhiều cách tổ chức, lưu trữ, cập nhật dữ liệu v.v…  
• Điều khiển CPU, điều khiển quá trình  
Để tối ưu hóa sự làm việc của CPU thì hoạt động của CPU được đảm  
bảo từ hệ thống điều khiển CPU: làm như thế nào để thời gian hoạt động có  
ích của CPU là cao nhất. Có thể tiếp cận theo khía cạnh điều khiển quá trình  
(chương trình, bài toán) với việc phân chia tài nguyên dùng chung, đồng bộ  
hóa, xử lý song song khi quan tâm đến mối quan hệ giữa các quá trình đang  
đồng thời tồn tại.  
• Điều khiển bộ nhớ  
Việc quản lý bộ nhớ trong để nắm vững vùng nhớ nào rỗi, vùng nhớ  
nào bận và việc phân phối bộ nhớ cho một chương trình và giải phóng bộ nhớ  
khi nó thực hiện xong là chức năng chính của điều khiển bộ nhớ. Điều khiển  
bộ nhớ làm sao đạt mục tiêu sử dụng bộ nhớ càng tối ưu càng tốt.  
 
17  
2.5. Chức năng cơ bản của hệ điều hành  
a)  
Quản lý tiến trình  
Một tiến trình là một chương trình đang được thi hành. Một tiến trình  
phải sử dụng tài nguyên như thời gian sử dụng CPU, bộ nhớ, tập tin, các thiết  
bị nhập xuất để hoàn tất công việc của nó. 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.  
Một tiến trình là hoạt động (active) hoàn toàn-ngược lại với một tập tin  
trên đĩa là thụ động (passive)-với một bộ đếm chương trình cho biết lệnh kế  
tiếp được thi hành.Việc thi hành được thực hiện theo cơ chế tuần tự , CPU sẽ  
thi hành từ lệnh đầu đến lệnh cuối.  
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 sử dụng. các tiến trình này có thể  
diễn ra đồng thời.  
Vai trò của hệ điều hành trong việc quản lý tiến trình là :  
 
18  
-
Tạo và hủy các tiến trình  
của người sử dụng và của hệ thống.  
-
Tạm dừng và thực hiện  
tiếp một tiến trình.  
Tải về để xem bản đầy đủ
doc 124 trang baolam 28140 Free
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Nguyên lý hệ điều hành - Nguyễn Văn Hưng", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • docgiao_trinh_nguyen_ly_he_dieu_hanh_nguyen_van_hung.doc