Tải bản đầy đủ (.doc) (103 trang)

GIÁO TRÌNH HỆ ĐIỀU HÀNH ĐẦY ĐỦ NHẤT

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (650.32 KB, 103 trang )

LỜI NÓI ĐẦU
Giáo trình “Hệ điều hành” biên soạn theo chương trình đào tạo chuyên ngành
Tin học hệ đại học của Khoa Tin trường Đại học Quy nhơn. Giáo trình dựa theo bài
giảng “Hệ điều hành” mà tác giả đã giảng dạy từ năm 2002 cho khoa Tin học của
trường. Tập giáo trình biên soạn để giảng dạy một khoảng thời gian là 45 tiết, nên
chỉ tập trung những vấn đề trọng tâm của Hệ điều hành.
Trong quá trình biên soạn tài liệu, chúng tôi xin cảm ơn các đồng nghiệp và
các sinh viên khoa Tin học đã đóng góp ý kiến và cổ vũ để sớm hoàn thiện giáo
trình. Mặc dù có nhiều cố gắng trong biên soạn nhưng không thể nào tránh khỏi
thiếu sót. Mong các bạn thông cảm và lượng thứ.
Quy nhơn, tháng 10 năm 2005
Người biên soạn
Lương Tín.
1
2
Chương 1
GIỚI THIỆU
1.1 KHÁI NỆM HỆ ĐIỀU HÀNH
1.1.1 Giới thiệu
Hệ điều hành là một chương trình hoạt động giữa người sử dụng và phần
cứng máy tính. Nó cung cấp một môi trường để người sử dụng có thể thi hành
chương trình đó.
Hệ điều hành là một phần quan trọng của hệ thống máy tính. Một hệ thống
máy tính gồm : phần cứng, hệ điều hành, trình ứng dụng và người sử dụng.
Hệ thống máy tính
Người dùng Trình ứng dụng
Hệ điều hành
Phần cứng
Phần cứng : Bao gồm các linh kiện tạo nên máy tính.
Trình ứng dụng: như các chương trình dòch, hệ thống dữ liệu , các trò chơi,
các chương trình thương mại v.v và các chương trình này sử dụng tài nguyên hệ


thống máy tính để giải quyết yêu cầu người sử dụng
Hệ điều hành: đ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 sử dụng khác nhau. Nó cung cấp môi trường mà
các chương trình ứng dụng làm việc hữu hiệu trên đó. Nó là bộ phân phối tài
nguyên của máy tính. Tài nguyên ở đây có thể hiểu như : thời gian sử dụng CPU,
vùng bộ nhớ, vùng lưu trữ tập tin, thiết bò xuất nhập. Nó kiểm soát và cấp phát các
tài nguyên đó một cách hợp lý tối ưu.
Ví dụ :
• Trình ứng dụng
_ MS Office
_ Corel Draw
_Internet Explore
• Hệ điều hành
_ MS-DOS , Window 95 ,Window 98
_ Novell Netware
_ Window NT , Window 2000 , Window XP
3
_Unix :Solairs , Linux, SCO , HP-UX ,AIX
_ Real time :embeded OSs , BeOs , RTLinux
• Phần cứng
Máy tính có các CPU như : Intel , Alpha , Power PC , Motola.
1.1.2 Các tính chất cơ bản của hệ điều hành
- Tính tin cậy: Mọi sự hoạt động của hệ điều hành phải
chuẩn xác tuyệt đối. Chỉ khi nào chắc chắn đúng thì hệ điều hành mới cung cấp
thông tin cho người sử dụng, nếu vẫn không được lúc đó hệ thống đưa các thông
báo lỗi.
- Tính an toàn: Hệ điều hành có những cơ chế bảo vệ dữ
liệu và bảo vệ các tài nguyên sử dụng chung, tránh sự vi phạm do cố ý người sử
dụng và chương trình. Nó đảm bảo sao cho dữ liệu và chương trình không bò
thay đổi ngoài ý muốn trong mọi chế độ hoạt động của hệ thống máy tính.

- Tính hiệu quả: Các tài nguyên của hệ thống phải được
khai thác một cách tối ưu. Phải được duy trì sự đồng bộ hệ thống, tránh trình
trạng treo hệ thống, không được để những thiết bò chậm làm ảnh hưởng hệ
thống.
- Tính kế thừa: Hệ điều hành mang tính chất kế thừa từ
những phiên bản trước, làm cho người sử dụng thích nghi với phiên bản mới.
Cập nhật các chức năng tiện ích và dễ sử dụng, cải tiến ít lỗi hơn.
- Tính thuận lợi: Sử dụng hệ điều hành dễ dàng, mang
tính chuyên nghiệp đối với người đã từng sử dụng và dễ dàng đối với người
chưa sử dụng. Các thao tác thuận lợi, hướng dẫn phong phú, các tiện ích kèm
theo đa dạng. Trong một thời gian ngắn, người sử dụng có thể nắm bắt nhanh
chóng các tính năng của hệ điều hành.
1.2 CÁC THÀNH PHẦN CỦA HỆ ĐIỀU HÀNH
1.2.1 Quản lý tiến trình
Một chương trình không được thực hiện gì cả nếu như nó không được CPU thi
hành. Một tiến trình là một chương trình đang được thi hành, nó thực hiện theo lô.
Thí dụ như một spooling xuất ra máy in là một quá 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, bộ nhớ, tập
tin, các thiết bò xuất nhập để hoàn tất công việc của nó. Các tài nguyên này được
cung cấp khi quá trình tạo ra hay trong quá trình thi hành. Khi tiến trình được tạo
nó sử dụng tài nguyên vật lý của hệ thống và lô gíc, khởi tạo dữ liệu nhập. Thí dụ,
khảo sát tiến trình hiển thò trạng thái tập tin lên màn hình. Đầu vào quá trình là tên
tập tin và quá 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ẽ tái tạo các tài nguyên có thể dùng lại.
4
Một tiến trình là hoạt động hoàn toàn ngược lại với một tập tin trên đóa là thụ
động , 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 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ó

nhiều tiến trình hoạt động cùng một 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 có thể diễn ra một
cách đồng thời. Một số chức năng của tiến trình là:
_ Tạo và huỷ các tiến trình của người sử dụng và của hệ thống .
_ Ngưng và thực hiện một tiến trình .
_ Cung cấp cơ chế đồng bộ tiến trình .
_ Cung cấp thông tin giữa các tiến trình .
_ Cung cấp cơ chế kiểm soát deadlock .
1.2.2 Quản lý bộ nhớ
 Quản lý bộ nhớ chính
Bộ nhớ chính là trung tâm của mọi thao tác, xử lý. Bộ nhớ có thể xem là
mảng kiểu byte, word. Mọi phần tử của nó đều có đòa chỉ. Đó là nơi mà CPU truy
xuất một cách nhanh chóng đối với các thiết bò nhập /xuất. CPU đọc các chỉ thò từ
bộ nhớ chính nầy, các vụ DMA cũng đọc và ghi trên bộ nhớ chính. Thông thường
bộ nhớ chứa thông tin các thiết bò mà CPU truy cập tới . Bộ nhớ sẽ chứa những
thông tin 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.
Một chương trình muốn thi hành trước hết phải á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 chương trình vào bộ nhớ chính. Ngay khi một tiến trình kết thúc, dữ liệu
vẫn còn trong bộ nhớ cho đến khi một tiến trình khác chồng lên.
Để tối ưu hoá các tiến trình hoạt động của CPU, một số tiến trình lưu trữ sẵn
trong bộ nhớ chính của máy tính. Có rất nhiều kế hoạch và thuật toán quản trò bộ
nhớ do có nhiều chương trình ứng dụng khác nhau. HĐH có vai trò như sau trong
việc quản trò bộ nhớ chính:
_ Lưu trữ thông tin về các vò trí trong bộ nhớ đã được sử dụng và ai sử dụng.
_ Quyết đònh quá trình nào được nạp vào bộ nhớ .
_ Cấp phát và thu hồi bộ nhớ cần thiết.
 Quản lý bộ nhớ phụ
Trong quá trình thực hiện một tiến trình, các dữ liệu không thể đưa vào bộ

nhớ chính được mà lưu trữ trên bộ nhớ phụ và đưa vào bộ nhớ chính khi cần thiết.
Hệ thống lưu trữ phụ đều dùng đóa để lưu chương trình và cả dữ liệu. Sau khi thực
hiện một quá trình các kết quả đều lưu trữ trên bộ nhớ phụ. Có nhiều thuật toán
hợp lý để trao đổi dữ liệu và chương trình giữa bộ nhớ chính và phụ. Vai trò của hệ
điều hành trong việc quản lý đóa :
_ Quản lý vùng trống trên đóa .
5
_ Đònh vò lưu trữ .
_ Lập lòch cho đóa .
Tốc độ hệ thống luôn luôn phụ thuộc rất nhiều vào đóa.
1.2.3 Quản lý hệ thống tập tin
Hệ thống quản lý tập tin là thành phần quan trọng nhất của hệ điều hành. Máy
tính có thể lưu trữ thông tin trong nhiều dạng thiết bò vật lý khác nhau: băng từ, đóa
từ , đóa quang Mỗi dạng có đặc thù riêng về mặt tổ chức vật lý. Mỗi thiết bò có
một bộ kiểm soát như bộ điều khiển đóa riêng. Những đặc điểm của thiết bò mà
người sử dụng quan tâm là tốc độ, khả năng lưu trữ, tốc độ truyền dữ liệu và cách
truy xuất.
Để cho việc sử dụng máy tính một cách thuận tiện, hệ điều hành cung cấp một
cái nhìn logic đồng nhất về hệ thống lưu trữ. Hệ điều hành đònh nghóa một đơn vò
lưu trữ logic là tập tin. Hệ điều hành tạo ra một ánh xạ từ tập tin đến vùng thông tin
trên đóa và truy xuất những tập tin này qua các thiết bò lưu trữ .
Một tập tin là một tập hợp những thông tin do người tạo ra xác đònh. Thông
thường một tập tin đại diện cho một chương trình và dữ liệu .
Vai trò của hệ điều hành trong việc quản lý tập tin:
_ Tạo và xoá một tập tin.
_ Tạo và xoá một thư mục .
_ Hỗ trợ các thao tác trên tập tin và thư mục.
_ nh xạ các tập tin trên hệ thống lưu trữ phụ .
_ Back up các tập tin trên các thiết bò lưu trữ.
1.2.4 Quản lý hệ thống xuất /nhập

Một trong những mục tiêu của hệ điều hành là che dấu những đặc thù của các
thiết bò phần cứng đối với người sử dụng thay vào đó là một lớp thân thiện hơn,
người sử dụng dễ thao tác hơn . Một hệ thống xuất nhập bao gồ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 .
Chỉ có device – driver mới hiểu đến cấu trúc đặc thù của thiết bò mà nó mô tả.
1.2.5 Hệ thống bảo vệ, lập mạng
Trong HĐH còn có một cơ chế bảo vệ. Với cơ chế này các tài nguyên của hệ
thống không đụng độ với nhau, giúp cho hệ thống làm việc bình thường, bảo vệ tài
nguyên dùng chung, phát triển và ngăn chặn các khả năng sai sót của tiến trình. Để
thực hiện một quá trình mới, yêu cầu được đưa từ các thiết bò ngoại vi, sau đó hệ
điều hành sẽ xử lý các yêu cầu đó theo một cơ chế dòng lệnh. Một số hệ điều
hành thực hiện cơ chế dòng lệnh bên trong hạt nhân, một số khác như MS-DOS và
UNIX trhì xem hệ điều hà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 sử dụng khi login đầu tiên.
6
Các lệnh được đưa vào hệ điều hành thông qua bộ điều khiển lệnh. Trong các
hệ thống chia sẻ thời gian một chương trình đọ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 card, cơ chế dòng lệnh hoặc shell. Chức năng của nó rất đơn giản
đó là lấy các lệnh kế tiếp và thi hành .
Một 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 sử dụng như là giao diện đồ hoạ của
Window, Macintosh có các biểu tượng, cửa sổ thao tác dùng chuột.
Một chức năng khác của HĐH hiện nay là khả năng kết nối mạng. Các máy
tính được nối mạng và chia sẻ tài nguyên truyền thông trên mạng thông qua các hệ
thống giao tiếp mạng. Các tiến trình trong mỗi máy trạm có thể kết nối với nhau và
xử lý thông qua hệ thống mạng.
1.3 CHỨC NĂNG CỦA HỆ ĐIỀU HÀNH

1.3.1 Các dòch vụ của hệ điều hành
Hệ điều hành tạo ra 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 sử dụng. Tuỳ theo kiến trúc hệ
điều hành mà các dòch vụ khác nhau, nhưng HĐH có một số dòch vụ chung như sau:
- Phục vụ việc thực hiện chương trình.
- Điều khiển các quá trình xuất/nhập.
- Thao tác trên hệ thống tập tin.
- Thông tin giữa các tiến trình, gửi nhận thông điệp.
- Phát hiện lỗi và biện pháp giải quyết.
- Tổ chức các dòch vụ.
1.3.2 Lời gọi hệ thống
Lời gọi hệ thống cung cấp một giao diện giữa tiến trình và hệ điều hành. Hệ
điều hành cung cấp hai phương pháp để tổ chức thực hiện lời gọi hệ thống.
- Tổ chức bằng những lệnh hợp ngữ.
- Tổ chức trực tiếp từ các chương trình viết bằng ngôn ngữ bậc cao như các
hàm và lời gọi hàm, các chương trình con . Trong các ngôn ngữ lập trình bậc
cao, người ta không quan tâm đến chi tiết mà chỉ cần thông qua các chỉ dẫn.
Có ba phương pháp được sử dụng để chuyển tham số cho hệ điều hành như : sử
dụng thanh ghi, sử dụng bảng trong bộ nhớ và stack. Lời gọi hệ thống chia thành
các loại: kiểm soát tiến trình, thao tác tập tin và thao tác thiết bò, thông tin.
1.3.3 Các chương trình hệ thống
Các chương trình hệ thống cung cấp công cụ cho người sử dụng thực hiện các
thao tác quản lý và điều khiển hệ thống. Nó có thể chia thành một số loại như:
- Các chương trình thao tác với tập tin và thư mục.
- Các chương trình thông tin trạng thái.
- Các chương trình tạo và mô tả tập tin.
7
- Các chương trình hỗ trợ ngôn ngữ lập trình
- Các chương trình điều khiện nạp và thi hành chương trình.
- Các chương trình giải thích lệnh , gửi và nhận thông điệp.

- Các chương trình ứng dụng kèm theo như : duyệt Web, đònh dạng đóa , sao
chép và các chương trình tiện ích khác.

1.4 KIẾN TRÚC HỆ ĐIỀU HÀNH
1.4.1 Mononlithic OS
Đây là cấu trúc đơn giản dùng trong hệ thống nhỏ và có giới hạn .
MS_DOS là một hệ điều hành, nó cung cấp những chức năng cần thiết trong
một không gian nhỏ nhất và không chia thành những đơn thể rõ rệt
Chương trình ứng dụng
Chương trình thường trú
MS –DOS device driver
ROM BIOS device driver
Các chương trình ứng dụng có thể truy cập thông qua các dòch vụ của DOS.
Một hệ điều hành khác cũng tương tự như vậy là UNIX . Cấu trúc gồm 2 phần: hạt
nhân và 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
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 hành khác thông qua lời gọi hệ thống. Tóm lại 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 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 sử dụng.
1.4.2 Microkernel OS và thiết kế phân lớp
Những version 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 topdown, những chức năng và phần chính được chia thành
nhiều phần nhỏ . Che dấu thông tin , không cho chương trình của người sử dụng có
thể cài đặt truy xuất cấp thấp , thay vào đó là các 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 đối với người sử 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 hệ điều hành bao gồm một số
8
cấu trúc dữ liệu và các hàm có thể gọi bởi lớp ở trên và bản thân nó gọi những lớp
ở cấp dưới . Mỗi lớp cài đặt chỉ sử dụng một số 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 cá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 ( Techinische Hogeschool Eindhoven ). Hệ thống chia làm 6 lớp
Lớp 5 Chương trình của người sử dung
Lớp 4 Tạo buffer cho thiết bò nhập xuất
Lớp 3 Device driver thao tác cho màn hì

nh
Lớp 2 Quản lý bộ nhớ

Lớp 1 Lập lòch cho CPU
Lớp 0 Phần cứng

1.4.3 Máy ảo
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 ra một tập hợp 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 một lớp .
Một số hệ thống có thể 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 các phần khác nhưng là 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 khái niệm là máy ảo. Ví dụ hệ

điều hành máy ảo IBM
Bằng cách sử dụng lập lòch cho CPU và kỹ thuật bộ nhớ ảo, một hệ điều hành
có thể tạo nhiều tiến trình phức tạp, mỗi cái sẽ thực hiện trên một bộ vi xử lý và
bộ nhớ riêng. Những tiến trình này có đặ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 một cách trực tiếp.
Tài nguyên hệ thống được chia sẻ để tạo những máy ảo. Lập lòch CPU chia sẻ
CPU cho các người sử dụng. Spooling và hệ thống tập tin được chia thành card đọc
ảo và máy in ảo. Một terminal 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 hệ thống máy ảo là hệ thống đóa. Giả sử hệ thống
chỉ có ba bộ điều khiển nhưng có bảy máy ảo. Như vậy không thể gán 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 sử dụng. Ngoài ra máy ảo
còn phải giải quyết các vấn đề vận chuyển dữ liệu và thời gian .
9

Tiến trình
Tiến trình Tiến trình Tiến trình
Hạt nhân
Phần cứng
Hạt nhân Hạt nhân Hạt nhân
Máy ảo
Phần cứng
1.5 LỊCH SỬ PHÁT TRIỂN HỆ ĐIỀU HÀNH
1.5.1 Thế hệ 1 ( (1945-1955)
Máy tính thế hệ này chưa có hệ điều hành (dùng bằng ống đèn chân không).
Mỗi máy được một nhóm thực hiện tất cả 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à dùng bảng điều
khiển để thực hiện các chức năng cơ bản. Sau đó vào khoảng thập niên 1950, thao

tác trên phiếu đục lỗ và kết quả vẫn giữ trên phiếu đục lỗ .
1.5.2 Thế hệ 2 ( 1955-1965)
Máy tính được tạo ra trên nền tảng các chất bán dẫn. Lần đầu tiên có sự phân
chia rõ ràng giữa nhà thiết kế, nhà xây dựng, nhà vận hành, nhà lập trình và bảo
trì.
Hệ thống xử lý theo lô 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. Do tốc độ tính toán CPU khá nhanh nên để
đồng bộ với các thiết bò xuất/nhập, CPU dùng cơ chế off_line sẽ ghi kết quả lên
băng từ làm bộ dữ liệu trung gian và cơ chế spooling đồng bộ hoá các thao tác bên
ngoài cho phép CPU hoạt động theo one_line. Ngôn ngữ lập trình chủ yếu lúc này
là FORTRAN và hợp ngữ .
1.5.3 Thế hệ 3 ( 1965-1980 )
Do sự ra đời các hệ thống máy tính sử dụng mạch tích hợp (IC) được dùng
nhiều trong khoa học và thương mại. Tiêu biểu như hệ máy IBM 360, sự ra đời
máy tính kèm theo sự ra đời các thiết bò ngoại vi, kèm theo các hệ thống điều
khiển nó là hệ thống đa chương.
Hệ thống đa chương gia tăng khai thác CPU bằng cách tổ chức các công việc
sao cho CPU trong tình trạng làm việc. Hệ điều hành sẽ lưu giữ một phần của các
công việc ở nơi lưu trữ trong bộ nhớ. CPU sẽ lần lượt thực hiện phân công các việc
này . Khi đang thực hiện nếu có yêu cầu truy xuất thiết bò thì CPU không nghỉ mà
thực hiện các công việc tiếp theo.
10
Hệ thống chia sẻ thời gian là một sự mở rộng của hệ thống đa chương, còn
được gọi là hệ thống đa nhiệm. Nhiều công việc cùng thực hiện thông qua cơ chế
chuyển đổi của CPU nhưng mỗi lần chuyển đổi nhanh hơn. Hệ thống đa nhiệm
dùng sự lập lòch của CPU và đa chương để cung cấp cho mỗi người sử dụng một
phần nhỏ trong máy tính chia sẻ. Một chương trình khi thi thành được gọi là một
quá trình. Hệ điều hành chia sẻ cho phép nhiều người sử dụng chia sẻ tài nguyên
một cách đồng bộ do thời gian chuyển đổi nhanh, họ có cảm giác là các quá trình
đang thực thi cùng một lúc. Nó có chức năng quản trò và bảo vệ bộ nhớ, sử dụng bộ

nhớ ảo, cung cấp hệ thống tập tin truy xuất on_line.
Đối với hệ thống có hơn 2 vi xử lý, đặc biệt là các hệ điều hành mạng. Hệ
thống nhiều bộ vi xử lý cần phải có các thuật toán đặc biệt để xử lý trên tập hợp dữ
liệu lớn và nhiều chương trình song song . Một lý do nữa là sự hỏng hóc của một xử
lý sẽ không ảnh hưởng đến toàn bộ hệ thống .
Hệ thống đa xử lý thông thường sử dụng cách đa xử lý đối xứng, trong cách
này bộ xử lý chạy một bản sao của hệ điều hành, những bản sao này này liên lạc
với nhau khi cần thiết. Một số hệ thống sử dụng đa xử lý 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ò đã đònh trướ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ộ vi xử lý khác nhau.
Hệ thống xử lý thời gian thực được sử dụng khi có những đòi hỏi khắt khe
về thời gian trên các thao tác của bộ xử lý hay dòng dữ liệu, nó được dùng điều
khiển các thiết bò trong các ứng dụng tận hiến. Máy tính phân tích dữ liệu và có thể
chỉnh các điều khiển giải quyết cho dữ liệu nhập .
Một hệ điều hành xử lý thời gian thực phải được đònh nghóa tốt, thời gian xử lý
nhanh. Hệ thống phải cho kết quả chính xác trong khoảng thời gian nhanh nhất. Có
hai hệ thống xử lý thời gian thực là cứng và mềm.
Hệ thống thời gian thực cứng là công việc được hoàn thành đú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à multimedia hay thực tại ảo.
1.5.4 Thế hệ 4 ( 1980- )
Hệ thống phân tán và mạ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ột bộ xử lý có bộ nhớ
cục bộ riêng. Các bộ xử lý 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ó 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
11
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 tuỳ thuộc vào trạng thái làm việc của chúng
Các nguyên nhân dẫn đến sự xây dựng hệ thống phân tán là:
• Chia sẻ tài nguyên
• Tăng tốc độ tính toán , tính toán song song
• An toàn : nếu trong một thành phần bò hỏng các hệ thống còn lại vẫn
phải làm việc .
• Thông tin liên lạc với nhau nhanh chóng.
CÂU HỎI VÀ BÀI TẬP
1. Trình bày những tính chất cơ bản của hệ điều hành.
2. Tài nguyên của hệ thống là gì ? Cho ví dụ minh hoạ.
3. Nêu các chức năng cơ bản của hệ điều hành. Minh hoạ một số chức năng
một số hệ điều hành đã biết.
4. So sánh những đặc điểm khác nhau của các hệ điều hành : đơn nhiệm, đa
nhiệm, mạng, phân tán, thời gian thực.
5. So sánh cơ chế bảo vệ của các hệ điều hành: DOS, Window9x và Window
2000.






12
Chương 2
QUẢN LÝ TIẾN TRÌNH
2.1 QUẢN LÝ TIẾN TRÌNH

2.1.1 Khái niệm
Để thực hiện các chương trình trong hệ thống máy tính cùng một lúc, nhất là hệ
điều hành đa nhiệm, đa chương. Hệ thống phần mềm được tổ chức thành các tiến
trình để chuyển đổi qua lại giữa các chương trình thực thi mà chúng ta có cảm giác
các chương trình đó cùng thực hiện một lúc giống như việc thực hiện song song.
Tiến trình là một chương trình đang thực thi và tiến trình có thời gian sống từ lúc
khởi tạo để lấy tài nguyên hệ thống, thực thi và kết thúc. Khi tiến trình kết thúc nó
trả lại các tài nguyên hệ thống.
Tiến trình là một thực thể tích cực khác với chương trình ở thể thụ động. Nó có
thể tương tác với người dùng và thế giới bên ngoài. Khi chương trình thực hiện nó
chuyển thành các tiến trình có nhiều trạng thái và chuyển trạng thái.
Tiến trình sở hữu các thông tin như bộ đếm chương trình, các thanh ghi để chứa
dữ liệu, stack , vùng chứa dữ liệu và các biến môi trường …
2.1.2 Trạng thái của tiến tình
Trạng thái của tiến trình được xác đònh vào thời điểm mà nó hoạt động. Khi
hoạt động các tiến trình có thể thay đổi một trạng thái do nhiều nguyên nhân. Tại
một thời điểm chỉ có một tiến trình thực thi (running), các tiến trình khác có thể ở
trong trạng đợi để cho CPU lấy dữ liệu và xử lý gọi là (ready) hay phải đợi một sự
kiện nào đó gọi là (blocked). Do đó, tại một thời điểm, một tiến trình có thể nhận
các trạng thái sau:
• New : tiến trình đang được tạo lập.
• Running : tiến trình đang được CPU thực thi các lệnh.
• Blocked : tiến trình đợi một sự kiện để cấp phát tài nguyên , sự kiện có
thể do việc xuất nhập dữ liệu trước từ một tiến trình khác.
• Ready : tiến trình chờ được cấp phát để CPU xử lý.
• Exited: tiến trình hoàn tất việc xử lý.
2.1.3 Cơ chế chuyển đổi trạng thái của tiến trình
New Dispatch Exited
READY RUNNING
Timer run-out

Wake-up Blocked
BLOCKED
13
- Tiến trình mới được đưa vào hệ thống và đưa vào hàng đợi.
- Bộ điều phối cấp phát cho tiến trình một khoảng thời gian sử dụng CPU và
thực hiện.
- Tiến tình kết thúc.
- Tiến trình chờ tài nguyên nhưng chưa được đáp ứng vì tài nguyên chưa được
cấp phát vào thời điểm đó, hoặc chờ một sự kiện hay thao tác xuất nhập.
- Bộ điều phối chọn một tiến trình khác để xử lý.
- Tài nguyên mà tiến trính yêu cầu trở nên sẵn sàng để cấp phát hay đợi một
sự kiện hoàn tất.
2.1.4 Cấu trúc dữ liệu khối quản lý tiến trình
Hệ điều hành quản lý các tiến trình trong hệ thống thông qua khối tiến tình
(process control block - PCB). Nó chứa các thông tin nhận dạng, trạng thái và đònh
vò tài nguyên của tiến trình, với thành phần chủ yếu bao gồm:
 Đònh danh của tiến trình : giúp phân biệt các tiến trình.
 Trạng thái hiện hành của tiến trình.
 Ngữ cảnh của tiến trình: mô tả các tài nguyên của tiến tình bao gồm:
- Trạng thái CPU: bao gồm vùng lưu trữ các thanh ghi, bộ đếm chương
trình, con trỏ lệnh IP lưu đòa chỉ lệnh kế tiếp, phục hồi các trạng thái sau
khi thực hiện xong ngắt.
- Bộ xử lý dùng cho nhiều CPU, xác đònh CPU nào hoạt động.
- Bộ nhớ chính: danh sách khối nhớ được cấp cho tiến trình.
- Tài nguyên sử dụng: danh sách tài nguyên hệ thống mà tiến trình sử
dụng, tạo lập.
 Thông tin giao tiếp : phản ánh các thông tin quan hệ với các tiến trình khác,
mức độ ưu tiên.
 Thông tin thống kê mô tả sự hoạt động tiến trình như thời gian sử dụng
CPU, thời gian chờ, các thông tin bảo mật

2.1.5 Các thao tác trên tiến trình
Hệ điều hành cung cấp các thao tác chủ yếu sau
đây trên một tiến trình:
-Tạo lập tiến trình: đònh danh tiến trình, đưa vào
danh sách quản lý , xác đònh độ ưu tiên, tạo PCB
và cấp phát tài nguyên, tạo ra cây tiến trình.Tiến
trình gọi lời hệ thống tạo tiến trình mới gọi là
tiến trình cha, tiến trình được tạo gọi là tiến trình
con . Tiến trình cha cùng hoạt động với các tiến
trình con hay chờ các tiến tình con.
14
A
B
C
D
E
F
G
H
I

Cây tiến trình
-Kết thúc tiến trình : một tiến trình rời khỏi danh sách quản lý hệ thống, thu
hồi các tài nguyên đã được cấp phát và huỷ bỏ PCB. Các tiến trình con phải
được rời khỏi hàng đợi trước tiến trình cha kết thúc.
- Tạm dừng tiến trình.
- Tái kích hoạt tiến trình.
- Phân phối các tiến trình
- Cho phép tiến trình trao đổi thông tin với các tiến trình đó.
- Thay đổi độ ưu tiên của tiến trình.

2.1.6 Điều phối các tiến trình
Để điều khiển các tiến trình ở nhiều trạng thái khác nhau, CPU phải tổ chức
cấp phát các tài nguyên cho các tiến trình từ hàng đợi dựa trên độ ưu tiên các tiến
trình, sao cho hiệu suất sử dụng CPU là tối ưu nhất. Có hai loại điều phối, tuỳ thuộc
vào vò trí đònh thời hệ thống:
- Long-term ( high – level ) scheduler
• Đònh thời trong việc cấp phát tài nguyên cho tiến trình.
• Thực hiện một lần cho tiến trình.
- Short term ( high – level ) scheduler
• Chọn tiến trình cho CPU xử lý.
• Thực hiện có thể xẩy ra nhiều lần trong suốt thời gian sống của tiến
trình.
2.2 TRẠNG THÁI BỊ TRÌ HOÃN
2.2.1 Nguyên nhân bò trì hoãn
Để đồng bộ hoá các tiến trình,
CPU tạm thời thu hồi các tài nguyên
hệ thống làm cho một số tiến trình có
thể bò dừng lại và sau đó có thể khởi
động lại các tiến trình từ các tiến trình
cha. Trạng thái bò trì hoãn có rất nhiều
nguyên nhân:
- Người dùng muốn dừng tiến độ
xử lý của quá trình để xem kết
quả thực hiện, phát hiện lỗi…
- Người quản trò hệ thống có thể
trì hoãn một số tiến trình để thu
hồi các một số tài nguyên của
tiến trình và hệ điều hành có
thể cấp phát cho quá trình khác
để giảm tình trạng quá tải.

15
Ready Blocked
Running
Suspendready
Suspendblocked
Suspend Resume
Dispatch
Timer runout
Suspend Resume
Suspend
Io wait -
event wait
Io completion -
event completion
Io completion -
event completion
- Trong trường hợp có tranh chấp tài nguyên giữa các tiến tình , việc trì hoãn
có thể thoát khỏi trình trạng deadlock.
2.2.2 Trạng thái bò trì hoãn
 Nếu quá trình đang trạng thái sẵn sàng hay đang thực thi bò trì hoãn , nó
sẽ rơi vào trạng thái bò trì hoãn sẵn sàng (suspended ready ).
 Nếu quá trình đang trạng thái bò chặn bò trì hoãn, nó sẽ rơi vào trạng thái
bò trì hoãn sẵn sàng bò chặn (suspended blocked ).
 Trạng thái trì hoãn có thể thay đổi nếu người dùng thực hiện quá trình
tiếp tục (resume).
 Tiến trình có thể chuyển từ trạng thái trì hoãn bò chặn sang trạng thái trì
hoãn sẵn sàng nếu có sự kiện tương ứng làm cho quá trình đó bò chặn xảy
ra.
2.3 NGẮT QUẢNG
2.3.1 Khái niệm ngắt

Để tiến trình có thể thực hiện được chính xác, cần phải đồng bộ hoá giữa CPU
và các thiết bò ngoại vi. Ngắt là phương tiện để các thiết bò thông báo CPU biết
việc thay đổi trạng thái của mình.
Ngắt làm cho ngừng tiến tình hiện thời để chuyển điều khiển sang một tiến
trình khác khi có một sự kiện xảy ra mà tiến trình hiện tại không biết.
2.3.2 Qui trình xử lý ngắt
Việc xử lý ngắt là ghi nhận thời điểm xảy ra ngắt. Nếu xử lý ngắt ngay lập tức
cho phép giải quyết nhiều yêu cầu nhưng làm mất câu lệnh hiện thời. Nó chờ câu
lệnh hiện thời kết thúc rồi mới xử lý, hệ thống có bộ điều khiển ngắt thực hiện việc
đònh kỳ kiểm tra có tín hiệu ngắt hay không ?
Có rất nhiều phương pháp xử lý ngắt nhưng quy trình chung là:
• Thiết bò sinh ra tín hiệu gây ra interrupt cho
bộ xử lý.
• Bộ xử lý hoàn tất lệnh đang thực thi.
• Bộ xử lý xác đònh loại interrupt và gửi
phản hồi cho thiết bò sinh ra interrupt.
• Bộ xử lý chuyển trạng thái của tiến trình
hiện thời (bộ đếm chương trình, nội dung
các thanh ghi, chế độ làm việc …) đưa tiến
trình vào hàng đợi.
• Chuyển đòa chỉ xử lý ngắt sang trình xử lý interrupt.
• Khi tiến trình xử lý interrupt thực hiện xong, trạng thái của tiến trình có
thể khôi phục lại và tiến trình được tiếp tục xử lý.
• Cho phép interrupt lồng nhau.
16
Ngắt
Trình xử lý
ngắt
Một số hoạt động của xử lý ngắt phải được thực hiện ngay lập tức như : hệ
thống xử lý lỗi, nhớ trạng thái tiến trình ,… những chương trình này nằm sẵn trong

trình thường trú hệ điều hành, một số chương trình ít cấp thiết hơn thì đưa vào hàng
đợi tuỳ theo mức ưu tiên của tiến trình.
2.3.3 Phân loại ngắt
Ngắt chia làm 2 loại ngắt trong và ngắt ngoài:
Ngắt trong là ngắt gây ra các sự kiện hoạt động của CPU bao gồm:
• Supervior call (SVC) khi tiến trình yêu cầu dòch vụ hệ thống, yêu
cầu cấp phát tài nguyên. Ngắt SVC ở mức ưu tiên cao nhất khi có
các lệnh gọi hệ thống.
• Program check : sinh ra khi thực thi chương trình bò lỗi ( như chia
cho 0, vi phạm đòa chỉ bộ nhớ, mã lệnh sai).
Ngắt ngoài sinh ra bởi các sự kiện nằm bên ngoài hệ thống : như tín hiệu
đồng hồ, sự cố kỹ thuật bao gồm: .
• I/O interrupt : do các thiết bò sinh ra khi chuyển trạng thái.
• External interrupt : sinh ra từ đồng hồ hệ thống, bàn phím.
• Restart interrupt : ngắt khởi động lại máy khi có sự cố xảy ra như
các thiết bò hư hỏng.
• Machine check : do nhà sản xuất tạo ra để kiểm tra thiết bò phần
cứng.
2.4 CHUYỂN NGỮ CẢNH ( CONTEXT – SWITCHING )
2.4.1 Trạng thái chuyển ngữ cảnh
Chuyển ngữ cảnh xảy ra khi hệï điều hành chuyển việc xử lý tiến trình từ
trạng thái này đến trạng thái khác. Khi chuyển ngữ cảnh xảy ra, trong hệ điều hành
bao gồm các chương trình con gọi là thẻ ngắt ưu tiên gọi là ngắt loại 1 được điều
khiển các tiến trình để xử lý – các thẻ ngắt SVC , thẻ I/O , thẻ external , thẻ
restart, thẻ program check, thẻ machine check. Khi ngắt xảy ra thì nó lưu trạng
thái của tiến trình hiện hành, hướng tới các thẻ ngắt ưu tiên loại 1 để chọn tiến
trình mới để xử lý gọi là PSW. Thẻ ngắt ưu tiên phải được phân biệt với các ngắt
khác gọi là ngắt loại 2.
Mỗi context bao gồm : các giá trò thanh ghi chứa thông tin trạng thái của tiến
trình về trạng thái CPU , bộ nhớ Các thông tin này lưu trong một vùng nhớ gọi là

PSW ( Program Status Word )
2.4.2 Các loại PSW
Các loại PSW điều khiển một cách có thứ tự của các chỉ thò thực hiện và chứa
các các thông tin về trạng thái của tiến trình. Có 3 loại chuyển ngữ cảnh : Current
PSWs , New PSWs và Old PSWs.
Đòa chỉ của lệnh tiếp theo được giữ trong current PSW, nó cho phép interrupt
hiện thời được bật và các interrupt khác bò tắt. Khi chuyển ngữ cảnh thì quá trình
17
ngắt xảy ra, tạm thời tắt các ngắt của tiến trình khác.Tiến trình không bao giờ tắt
ngắt SVC, ngắt restart và một vài loại ngắt của chương trình. Việc xảy ra bật và
tắt các ngắt được thực hiện trong suốt.

SVC
I/O
External
Restart
Program check
Machine check
SVC
I/O
External
Restart
Program check
Machine check
Current PSW
New PSWs
Old PSWs
Quá trình chuyển ngữ cảnh
Do đó, trong một bộ vi xử lý chỉ có 1 Current_PSW và 6 New_PSW và 6
Old_PSW tương đương với 6 loại interrupt. Quá trình chuyển ngữ cảnh xảy ra qua

sự thay đổi các PSW hệ thống. Khi chuyển ngữ cảnh xảy ra, các bước hoán đổi
ngữ cảnh xảy ra như sau:
_ Lưu Current PSW vào trong Old PSW
_ Lưu New PSW vào trong Current PSW
Sau khi hoán đổi PSW, Current PSW chứa đòa chỉ một thẻ ngắt ưu tiên 1. Thẻ
ngắt này thực hiện và thực hiện ngắt xảy ra. Sau khi ngắt hoàn thành CPU phân
phối tài nguyên có các ngắt khác theo một trong 2 chế độ: độc quyền
(nonpreemtive) và không độc quyền (preemtive). Thực hiện độc quyền nó chiếm
CPU cho đến khi thực hiện xong tiến trình và không độc quyền nó chỉ CPU khi
tiến trình trong trạng thái sẵn sàng.
2.5 ĐIỀU PHỐI TIẾN TRÌNH
2.5.1 Mục tiêu
Để xử lý các tiến trình hệ điều hành có thể thay đổi trạng thái một cách luân
phiên như thời gian sử dụng CPU, đợi việc xuất/nhập. Sự thay đổi luân phiên
thường xuyên để các tiến trình có thể trao đổi thông tin và nhiều người sử dụng.
Để thực hiện mục tiêu hệ điều hành phải chọn tiến trình tiếp theo để xử lý.
Khi có nhiều quá trình cùng tồn tại trong hệ thống, bộ điều phối sẽ sử dụng một
giải thuật tối ưu để chọn thứ tự các tiến trình để CPU phục vụ một cách hiệu quả,
tận dụng được thời gian của CPU. Trong hệ điều hành cũng có một thành phần
khác gọi là bộ phân phối (dispatcher) cùng với bộ điều phối chòu trách nhiệm
18
chuyển đổi ngữ cảnh và trao CPU cho tiến trình được chọn bởi bộ điều phối để xử
lý. Một số mục tiêu đề ra để tối ưu hoá như sau:
 Tính công bằng : CPU đối xử công bằng giữa các tiến trình, không có
tiến trình chờ đợi vô thời hạn.
 Tính hiệu quả : Cực đại số quá trình phục vụ trong một thời gian, CPU
hoạt động 100 % thời gian.
 Cực đại số người dùng tương tác.
 Dự đoán trước số tài nguyên cấp phát cho tiến rình cho tối ưu.
 Tránh lãng phí tài nguyên hệ thống.

 Ưu tiên cho các tiến trình giữ tài nguyên quan trọng.
 Tránh tắc nghẽn khi có tải lớn.
2.5.2 Các cấp độ điều phối
Công việc điều phối hệ điều hành thực hiện ở các cấp độ sau:
 Cấp cao ( high level ) : đònh thời các
công việc (job). Xác đònh thời điểm tạo
tiến trình và nạp chương trình vào bộ
nhớ.
 Cấp trung ( intermediate level) : Xác
đònh thời điểm tiến trình có thể tham
gia cạnh tranh với CPU với các tiến
trình khác.
Bộ điều phối cần biết các tính chất của tiến trình là hướng xuất
nhập và hướng xử lý . Để cân bằng hoạt động CPU, bộ điều phối có thể
thực hiện trong việc chọn quá trình bò trì hoãn (suspended) nào đó được
thực hiện trở lại.
 Cấp thấp ( low level) : Chọn quá trình nào sẵn sàng và cho CPU thực thi
nhằm nâng cao hiệu suất của CPU
2.5.3 Hoạt động bộ điều phối
Hệ điều hành sử dụng 2 loại danh sách để thực hiện điều phối tiến trình là
danh sách sẵn sàng và danh sách đợi. Khi tiến trình bắt đầu đi vào hệ thống , nó
được chèn vào danh sách tác vụ. Các tác vụ sẽ đưa vào bộ nhớ chính và CPU tiếp
nhận mới đưa vào danh sách sẵn sàng. Bộ điều phối sẽ chọn một tiến trình trong
danh sách sẵn sàng và CPU tiếp nhận nó để xử lý. Trong thời gian thực thi tiến
trình có thể :
- chuyển sang trạng thái chờ khi xảy ra sự kiện như đợi một thao tác
xuất/nhập, nó sẽ chuyển từ trạng thái thực thi sang trạng thái bò chặn,
- hoặc hết thời gian thực hiện nó chuyển sang trạng thái sẵn sàng.
Tiến trình có thể bắt buộc dừng lại xử lý do ngắt xảy ra gọi là trạng thái bò
chặn , khi đó tiến trình được đưa vào danh sách sẵn sàng (chuyển sang trang thái

sẵn sàng) để chờ được CPU cho lượt tiếp theo.
19
Bộ đình thời tiến trình
enter
JOB QUEUE
READY QUEUE
I/O WAITING QUEUE
CPU
end
High Level
Low Level
Tiến trình lặp lại chu kỳ này cho đến khi hoàn tất tác vụ (trạng thái kết thúc)
thì được hệ thống huỷ bỏ khỏi danh sách điều phối.
Sử dụng CPU Sử dụng CPU Sử dụng CPU
Bắt đầu | | | | | | Kết thúc
Đợi I/0 Đợi I/0
Sơ đồ thực hiện tiến trình
2.5.4 Bộ phân phối (Dispatcher)
• Sau khi bộ điều phối tiến trình thực hiện chọn lựa các tiến trình thích hợp để
gán vào CPU , bộ phân phối sẽ chòu trách nhiệm chuyển điều khiển CPU cho quá
trình.
• DISPATCHER sẽ thực hiện các bước chuyển ngữ cảnh:
- Chuyển ngữ cảnh sang cấp người dùng
- Nhảy sang một vò trí thích hợp của tiến trình và bắt đầu thực thi.
2.5.5 Điều phối độc quyền và không độc quyền (preemtive / non preemtive)
Điều phối độc quyền: Cho phép một tiến trình khi nhận được CPU có quyền
độc chiếm CPU đến khi hoàn tất hoặc tự nguyện giải phóng CPU. Trong lúc một
quá trình khác thực thi không có quá trình nào khác có thể tham gia xử lý.
Điều phối không độc quyền: Khi một tiến trình nhận được CPU, nó vẫn sử
dụng CPU đến khi hoàn tất hoặc tự nguyện giải phóng CPU, nhưng một tiến trình

khác có độ ưu tiên có thể giành quyền sử dung CPU của tiến trình ban đầu. Như
vậy tiến trình có thể bò tạm dừng hoạt động bất cứ lúc nào mà không báo trước.
Điều phối độc quyền thường được sử dụng trong các tiến trình ngắn, độ ưu
tiên cao. Đối với hệ thống tương tác, các hệ thời gian thực thường dùng điều phối
không độc quyền để có thời gian hồi đáp. Điều phối không độc quyền có thuật toán
phức tạp và chi phí cao hơn.
2.5.6 Một số tiêu chuẩn điều phối
Yếu tố để đánh giá một số tiêu chuẩn điều phối là:
• Độ lợi CPU ( CPU utilization) : giữ CPU càng bận càng tốt .
• Thông lượng ( throughput) : số quá trình hoàn tất trong một đơn vò thời gian
càng nhiều càng tốt.
• Thời gian xử lý (turn around time): được tính từ khi tiến trình bắt đầu cho tới
khi tiến trình kết thúc chính là lượng thời gian để xử lý quá trình càng ít càng
tốt.
• Thời gian chờ ( waiting time) : lïng thời gian mà quá trình đợi trong hàng
đợi sẵn sàng càng ít càng tốt.
• Thời gian đáp ứng ( Respone Time) : khi tiến trình hoạt động trong hệ thống ,
nó cần dùng CPU nhiều lần. Mỗi lần cần dùng giờ CPU tiến trình đưa ra một
20
yêu cầu, như vậy thời gian tính từ khi tiến trình có yêu cầu giờ CPU tới khi
được hệ thống phân bổ gọi là thời gian đáp ứng. Càng cực tiểu thời gian đáp
ứng càng tốt.
2.6 CÁC GIẢI THUẬT ĐIỀU PHỐI
2.6.1 Giải thuật FIFO ( First In First Out)
• CPU được cấp phát cho tiến trình đầu tiên trong danh sách sẵn sàng có yêu
cầu là tiến trình được đưa vào hàng đợi sớm nhất.
• Tiến trình nào vào trước thì được phục vụ trước.
• Điều phối theo kiểu độc quyền (preemtpive)
Thí dụ 1:
Cho 3 tiến trình đến hệ thống Tiến trình Thời gian thực thi

Theo thứ tự P1,P2,P3 P1 24
_ Thứ tự thực hiện của 3 tiến trình P2 5

là P1->P2->P3 P3 2
_ Biểu đồ găng (Gantt) thực hiện như hình bên dưới
P1 P2 P3
0 24 29 31
_ Thời gian xử lý của 3 tiến trình : P1:24s , P2:29s , P3:31s
_ Thời gian xử lý trung bình : (24 +29 +31)/3 =28
_ Thời gian đợi của 3 tiến trình : P1:0s , P2: 24s , P3:29s
_ Thời gian đợi trung bình : ( 0 + 24 +29)/3=17.67s
Thí dụ 2:
• Giả sử thời gian đến của các tiến trình có thay đổi như sau : P3->P2->P1
• Khi đó thứ tự thực thi cho 3 tiến trình P3->P2->P1
Biểu đồ găng thể hiện thứ tự điều phối là:
P3 P2 P1
0 2 7 31
_ Thời gian xử lý của 3 tiến trình : P3::2s , P2:7s , P1:31s
_ Thời gian xử lý trung bình : (2 +7 +31) /3 =13.3
_ Thời gian đợi của 3 tiến trình : P1:0s , P2: 2s , P3:7s
_ Thời gian đợi trung bình của 3 tiến trình : ( 0 + 2 +7)/3=2s
Nhận xét
Thời gian đợi trung bình và thời gian xử lý trung bình không cực tiểu. Có
thể xảy ra hiện tượng tích luỹ thời gian chờ khi các tiến trình (có yêu cầu
21
thời gian ngắn) phải chờ đợi một tiến trình có yêu cầu thời gian dài khi kết
thúc.
Giải thuật này không phù hợp với hệ phân chia thời gian, trong các hệ này
cần cho phép mỗi tiến trình được cấp phát CPU đều đặn.
2.6.2 Giải thuật Shortest Job First ( SJF)

Giải thuật SJF xác đònh thứ tự ưu tiên thực hiện tiến trình dựa vào tổng thời
gian thực hiện tiến tình.
• Điều phối theo kiểu độc quyền.
• Tiến trình nào có thời gian ngắn nhất sẽ được phục vụ trước.
• Việc điều phối sau khi có tiến trình kết thúc,
Min Time
Processor
Thí dụ:
Cho 3 tiến trình Tiến trình Tg đến Tg thực thi
đến hệ thống theo thứ tự P1 0 7
_ Ba tiến trình được điều phối P2 1 4
theo thứ tự P1->P3->P2 P3 5 2
Điều phối lại:

P1 P3 P2

0 7 9 13
_ Thời gian xử lý của 3 tiến trình : P1:7s , P2:12s , P3:4s
_ Thời gian xử lý trung bình: (7 +12 +4) /3 =7.67s
_ Thời gian đợi của 3 tiến trình: P1:0s , P2: 8s , P3:2s
_ Thời gian đợi trung bình của 3 tiến trình: ( 0 + 8 +2)/3=3.3s
Nhận xét
• Nếu có các tiến trình có thời gian thực hiện ngắn thì loại bỏ các tiến trình
ngắn trong hàng đợi. Nếu các tiến trình ngắn đến liên tục thì giải thuật xử
lý các tiến trình có thể đưa về FIFO.
• Nhược điểm chính của giải thuật là chế độ phân phối giờ CPU cũng được
áp dụng trong trường hợp ngắt các tiến trình dài đang thực hiện để phục vụ
tiến trình ngắn hơn trong hàng đợi, có thể trì hoãn các tiến trình dài nếu
các tiến trình ngắn đến liên tục.
2.6.3 SRT ( Shortest Remaining Time)

Tương tự như giải thuật của SJF độ ưu tiên các tiến trình dựa vào thời gian
cần thiết để thực hiện nốt các tiến trình (bằng tổng thời gian trừ đi thời gian đã
22
thực hiện), do đó phải thường xuyên cập nhật thông tin về các tiến trình). Chi tiết
giải thuật này như sau:
• Điều phối theo kiểu preemptive.
• Tiến trình nào có thời gian xử lý còn lại nhỏ nhất thì xử lý trước.
• Việc điều phối được thực hiện ngay khi có tiến trình đến hệ thống.

Min remaining time
Processor
Thí du :
Cho 3 tiến trình Tiến trình Tg đến Tg thực thi
đến hệ thống theo thứ tự P1,P2,P3 P1 0 7
_ Thứ tự thực hiện của 3 tiến P2 3 2
trình là : P1->P2->P3->P1 P3 5 2
Điều phối lại

P1 P2 P3 P1
0 3 5 7 11
_ Thời gian xử lý của 3 tiến trình : P1:11s , P2:2s , P3:2s
_ Thời gian xử lý trung bình : (11 +2 +2) /3 =5s
_ Thời gian đợi của 3 tiến trình : P1:4s , P2: 0s , P3:0s
_ Thời gian đợi trung bình : ( 4 + 0 +0)/3=1.3s
Nhận xét
• Trường hợp các tiến trình nhỏ đến cùng một thời điểm thì trở về giải thuật
SJF.
• Nếu có nhiều tiến trình có thời gian nhỏ đến liên tục thì tiến trình có thời
gian lớn khó có thể kết thúc để thực hiện thời gian lớn.
• Điều phối theo kiểu SFJ và SRT có thể gây ra trì hoãn vô hạn đònh .

• Khi các tiến trình có thời gian xử lý nhỏ đến liên tục thì có kết quả gần
giống với giải thuật FIFO.
2.6.4 Round Robin
Danh sách sẵn sàng được xử lý như một danh sách vòng, bộ điều phối sẽ lần
lượt cấp phát cho từng tiến trình trong theo giải thuật sau:
• Đònh thời theo kiểu non-preemptive
• Quá trình chỉ được chiếm CPU trong khoảng thời gian q (quantum time) .
Nếu trong khoảng thời gian đó quá trình chưa kết thúc thì nó trả CPU lại
cho hệ điều hành và quay cuối hành đợi Ready .
23

Processor
q
Thí dụï:
Cho các tiến trình như hình bên
Hệ thống đònh thời theo giải thuật Tiến trình Tgđến Tg thực thi
Round Robin với quantum time P1 0 7
( 1 s ) có thứ tự đònh thời nh sau : P2 3 2
P3 5 2
Điều phối lại

/
P1
P2
P3
Nhận xét
• Khả năng đáp ứng của quá trình theo đònh thời theo giải thuật Round
Robin không bò trì hoãn.
• Nếu có n quá trình thì thời gian đợi để đến phiên một quá trình tối đa là
( n-1)*q

• So sánh giải thuật FIFO ,SJF và SRT về số lần chuyển ngữ cảnh giữa các
tiến trình .Thời gian chuyển ngữ cảnh trong thực tế chiếm nhiều thời gian
CPU.
Giả sử q rất lớn thì trở thành FIFO
Nếu q rất nhỏ thì thời gian CPU phục vụ cho các quá trình ít đi .
2.6.5 HRRN ( Highest Reponse Ratio Next )
Mỗi tiến trình được gán cho một ưu tiên tương ứng và việc thực hiện giải thuật
dựa trên sự ưu tiên này. Đây là giải thuật:
• Cải tiến giải thuật SJF.
• Thực hiện theo kiểu điều phối độc quyền.
• Độ ưu tiên của tiến trình sẽ tính theo công thức
p= (t
w
+ t
s
) /t
s
t
w
: thời gian đợi trong hàng đợi ready
t
s
: thời gian mà tiến trình cần CPU phục vụ
• Tiến trình nào có độ ưu tiên lớn nhất sẽ phục vụ trước.
Thí dụ :
Cho 3 tiến trình đến hệ Tiến trình Tgđến Tg thực thi
Khi quá trình P1 kết thúc . Hệ thống P1 0 7
24
Sẽ đònh thời lại P2 1 4
Độ ưu tiên được tính : P3 5 2

_ Tiến trình P2 (6+4)/4 =2.5
_ Tiến trình P3 (2+2) /2 =2
Do đó, Quá trình P2 được ưu tiên
Thứ tự đònh thời P1->P2->P3
Nhận xét :
• Tránh trì hoãn vô hạn đònh
• Ưu tiên cho quá trình nào cho thời gian xử lý nhỏ
• Ưu tiên cho quá trình nào có thời gian đợi lớn.
Do các giải thuật SJF , SRT, HRRN có đầu vào là thời gian thực thi của
tiến trình ngẫu nhiên nên giải thuật này khó áp dụng trong thực tế .
• Cũng có một số giải pháp để dự đoán trước như : WCET (Worst Case
Execution Time) , Complexity , Tracing.
2.6.6 Multilevel Feeback Queue
MLFQ là một giải thuật tổng quát nhất
để điều phối các tiến tình như sau :
• Đònh thời theo kiểu
preemptive
• Hệ thống gồm n hàng đợi
• Các hàng đợi từ 1 đến n-1 được đònh nghóa theo kiểu FIFO có các
quantum time lần lượt là q
1
,q
2
, q
3
, , q
n
(thông thường q
1
< q

2
< q
3
< < q
n
)
• Nếu tiến trình trong hàng đợi thứ k (1 <= k <=n –1 ) chiếm CPU hết thời
gian q
k
thì nó sẽ xếp vào cuối hàng thứ k +1
• Các tiến trình trong hàng đợi thứ k ( 2 <=k <=n ) chỉ được phục vụ nếu
không có tiến trình nào trong tất cả hàng đợi từ 1 đến k-1.
• Các tiến trình ở hàng đợi thứ n được phục vụ theo kiểu Round Robin
Nhận xét
• Đầu vào không cần thông số về thời gian thực thi quá trình.
• Kết quả đònh thời gần giống với giải thuật SJF.
• Để điều phối các tiến trình theo thuật toán này cần chú ý thêm :
- Số lượng hàng đợi sao cho hợp lý.
- Chọn thuật toán thích hợp cho mỗi hàng đợi.
- Tiêu chuẩn và cách thúc hạï mức một tiến trình.
- Tiêu chuẩn và cách thức nâng mức một tiến trình.
- Tiêu chuẩn và cách thức để chỉ đònh một tiến trình mới phát sinh để đưa
vào hàng đợi.
25
Processor
q1
q2
qn
P1
P2 P3

Điều phối lại
P1 P2
P3
0 7 11 13

×