You are on page 1of 17

Nguyên Lý Hệ Điều Hành

Chương 1: Tổng Quan về Hệ Điều Hành


1. Khái niệm về Hệ điều hành
- Kiến trúc của một hệ thông máy tính
+,Bao gồm: Bộ nhớ (Bộ nhớ phân chia), CPU, hệ thống bus chung,
Các thiết bị điểu khiển(Disk, mouse, keyboard, printer, monitor)
+,Các thiết bị điều khiển và CPU thực hiện đống thời, cạnh tranh
nhau
- Kiến trúc phân lớp của một hệ thống máy tính
+ Theo Sillberschazts 2002:
user _> system and applicantion program _> operating system
_> computer Hardware

Trong đó:
- Phần cứng (Hardware): Cung cấp các tài nguyên tính
toán cơ bản (CPU, bộ nhớ, thiết bị vào ra)
- Hệ điều hành(Operating System) điều khiển và phối
hợp làm việc sử dụng phần cứng cho các ứng dụng khác nhau của nhiều người sử dụng
khác nhau
- Chương trình ứng dụng (Application programs):
chương trình dihcj, hệ cơ sở dữ liệu, game, ...) 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 sử dụng
- Người dùng (User): người sử dụng máy móc hay máy
tính khác

+ Theo Tanenbaum 2001


Applicant Progarms_> System Program -> Hardware
Trong đó:
Applicant Program: gồm các chương trình ứng dụng
System progarm: gồm các complier editor command interpreter
và operating System
Hardware : Machine Language Microarchitecture Physical
devices
Hệ điều hành nằm giữa phần cứng của hệ thống và chương trình ugnws dụng
Application
____________________> Virtual Machine Interface
Operating System
____________________> Physical Machine Interface
Hardware
Mục tiêu của hệ điều hành: Cung cấp môt môi trường để người sử dụng có
thể thực hiện được các chương trình ứng dụng và làm cho máy tính dễ dàng sử dụng
hợn, thuận lợi hơn và hiệu quả hơn]
- Chuẩn hóa giao diện người dụng đối với các hệ thống phần cứng
khác nhua
- Sử dựng hiệu quả tài nguyên phần cứng và khai thác tối đa hiệu
suất của phần cứng
Chức năng của hệ điều hành:
1. Giả lập một máy tính ảo
Ẩn dấu các chi tiết phải thực hiện và khai thác các chức
năng của phần cứng máy tính dễ dàng và hiện quả hơn
- Đơn giản hóa vấn đề lập trình
Không phải làm việc với dãy nhị phân
Tiến trình sở hữu toàn bộ bộ nhớ, thời gian CPU,
thiêt bị của máy ảo
Giao tiếp với thiết bị dễ dàng hơn so với phần cứng
thuần túy
- Mở rộng hệ thống -> hệ thopongs có những đặc trưng mong
muôn (bộ nhớ ảo, máy in ảo,..;)
- Hữu ích cho phát triển hệ điều hành
Nếu hệ điều hành bị hỏng chỉ giới hạn trong máy ảo
Trợ giúp kiểm tra các chuogwn trình trên các HDH khác
2. Quản lý tài nguyên của hệ thống (Chức năng chính)
- Tài nguyên hệ thống(Vi xử lý, bộ nhớ, thiết bị vào ra,
file) được chuognw trình sử dụng để thực hiện công việc xác định
- Các chương trình đòi hỏi tài nguyên về mặt thời gian(sử
dụng) và không gian(nhớ)
Hệ điều hành phải quản lý tài nguyên để hoạt động của máy
tính là hiệu quả nhất
Phân phối các tài nguyên cho các chương trình khi cần
thiết
Giải quyết tranh chấp
Quyết định thứ tự cấp phát tài nguyên cho những yêu
cầu

2. Lịch sử phát triển hệ điều hành


3. Các khái niệm trong hệ điều hành
1. Tiến trình và luồng
Tiến trình(process): Một chương trình đang thực hiện
Mã lệnh chương trình có thể thực thi
Dữ liệu của chương trình
Ngăn xếp con trỏ ngăn xeeso các thanh ghi
Các thông tin cần thiếu cho việc thực thi các chương trình
Tiến trình khác chương trình
Chương trình: thực thể thụ động chưa các chỉ thị điều khiển
máy tính thực hiện một nhiệm vụ nào đó
Tiến trình: trạng thái hoạt động của chương trình
Hệ thống đa tiến trình phân chia thời gian:
HDH theo chu kỳ: duungwf một tiến trình để bắt đầu một tiến
trình khác
Cần lưu thông tin các process => bảng tiến trình
(process table)
Một tiến trình có thể khởi tạo các tiến trình khác
shell của HDH kích hoạt một tiến trình thực
hiện lênh; thực hiện xong hủy tiến trình mới được kích hoạt
Các tiến trình có thể trao đổi thông tin với nhau
Một tiến trình có thể có nhiều luồng
Luồng(thread): lệnh được thực hiện trong tiến trình
Mã thực thi, dữ liệu, con t rỏ leenhjm ngăn xếp, tập thanh
ghi riêng
Tiến trình chỉ chứa 1 luồng
tiến tình gồm nhiều luồng
Mô hình đa luồng
2. Tài nguyên hệ thống
Tài nguyên hệ thống là tất cả những gì cần thiếu để cho một tiến
trình có thể thực hiện được
Không gian: Không gian lưu trữ của hệ thống
Thời gian: Thời gian thực hiện lệnh truy xuất dữ liệu
Bộ nhớ: Đặc trưng bởi dung lượng và thời gian truy cập trực tiếp
tuần tự
Phân cấp: Bộ nhớ thực hiện/trong; mở rộng; ngoiaf
Phân biệt các khái nieemjL Bộ nhớ(Vùng vật lý chứa dữ
liệu) và truy cập tới bộ(quá trình timd đến dữ liệu trên bộ nhớ)
Processor(VXL)
Quan trọng nhấy của hệ thống và đucợ truy cập ở mức câu
lênh
Quan tâm đến thời gian xiwr lý. Hệ thống nhiều VXL thời của
từng VXL được quản lý và phân phối độc lập
Thiết bị ngoại vi
Tiếp nhận, kết xuất thông tin(thiết bị vào ra)
Gắn với hệ thống bới các thiết bị điều khiển
Xét chung thiết bị ngoại vi thiết bị điều khiển
Phân loại tài nguyện
theo kiểu tài nguyên
Tài nguyên vật lý: Các thiết bị vật lý
Tài nguyên logic:biến nhớ; thiết bị ảo
Theo khả năng sử dụng chung:
Tài nguyên dùng chung đuocwj tại một thời điểm có thể cấp
phát cho nhiều tiến trình khác nhau
Tài nguyên không dùng chung được nhưng phân chia được: Các
tiến trình sử dụng tài nguyên theo nguyên tắc lần lượt (ví dung processor)
Tài nguyên không dùng chung cũng ko phân chia được: Tại một
thời điểm chỉ có thể cấp phát cho 1 tiến trình
Tài nguyên ảo: Là loại tài nguyên cung cấp cho chương trình người sử
dụng dưới dạng đã được biến đổi
Chỉ xuất hiện khi hệ thống cần tới hoặc khi hệ thông tạo ra nó
Tự động mấy đi khi hệ thống kết thức hay chính xác hơn là khi
tiến trình gắn với nó đã kết thưc
3. Bộ xử lý lệnh (shell)
Là tiến trình đặc biệt: Nơi giao tiếp giữa người dùng và hệ điều
hành
Nhiệm vụ
Nhận lệnh của người sử dugnj
Phân tích lệnh
Phát sinh tiến trình mới để thực hiện yêu cầu của lệnh
Nhận lệnh thông qua cơ chế dòng lệnh
Môi trường đơn nhiệm (MS-DOS):
Shell sẽ chờ cho tới khi tiến trình này kết thức mới có thể
nhận lệnh mới
Trong môi trường đa nhiệm(UNIX WINXP)
Sau khi khởi tạo và đưa tiến trình mới vào hoạt động, Shell
có thể nhận lệnh mới
4. Lời gọi hệ thống (System calls)
Mục đích:
Tạo môi trường giao tiếp giữa chương trình của người sử
dụng và hệ điều hành
Chương trình dùng các lời gọi hệ thống để yêu cầu các
dịch vụ từ hệ điều hành
Tạo, xóa, sử dụng các đối tượng phần mềm khác
nhau được vận hành với hệ điều hành
Mỗi lời gọi hệ thống ứng với một thư viện các chương
trình con
Lời gọi hệ thống được thực hiện dười dạn
Các câu lệnh trong các ngôn ngữ lập trình cấp thấp
Lệnh gọi ngắt trong hợp ngữ (lnt)
Thủ tục gọi hàm API trong window
Tham số cho các dịch vụ và kết quả trả về được đặt tại các
vùng nhớ đặc biện
VD khi gọi ngắt mã chức năng được trong thanh ghi AH
4. Định nghĩa và phân loại hệ điều hành
1. Định nghĩa
Các đối tượng khác nhau có yêu cầu khác nhau về hệ điều hành =>
với nhiều góc độ quan sát khác nhau có nhungwxc định nghĩa khác nhau
Đối với người sử dung: là hệ thống chương trình phục vụ khai thác
hệ thống tính toán một cách thuận lời
Người quản lý: Là hệ thống chương trình phục vụ quản lý chặt chẽ
và sử dụng tối ưu các tàu nguuyeen của hệ thốn tính toán
Quan điểm kỹ thuật là một hệ thống chương trình trang bị cho một
máy tính cự thể để tạo ra một máy tính logic mới với tài nguyên mới và khả năng nói
Quan điểm hệ thống là một hệ thống mô hình hóa mô phongt hoạt
động cyuar kyas tính của người sử dụng và của các thao taoc viên, hoạt động tròn
chế độ đối thoiaj nhằn tạo môi trường khai thacs thuận lợi hệ thống máy tính và
quản lý tối ưu của tài nguyên của hệ thống
Mô phỏng 3 thành phần -> đòi hỏi 4 ngôn ngữ:
Ngôn ngữ myays: Là
ngôn ngữ thực hiện duy nhấy của hệ thống, Mọi ngôn ngữ khác phải dịch ra ngôn ngữ
máy
Ngôn ngữ vận hành
của hệ thống: Câu lệnh của hệ điều hành(DOS: dir dekk ls rm) Được dịch bằng shell
Ngôn ngữ thuật
toán: Ngôn ngữ lâp trình + Chương trình dịch

2. Phân loại Hệ điều hành


Hệ thống Xử lý theo lô đơn chương trình
Thực hiện chương trình lần lượt theo những chỉ thị đã xác
định trước
Khi một chương trình kết thức hệ thống tự thực hiện chương
trình tiếp theo mà không cần can thiệp từ bên ngoài
Phải tồn tại bộ giám sát thực hiện dãy các công việc và bộ
giám sát thường trú trong hệ thống
Đòi hỏi tổ chức hàng đợi công việc
Khi chuognw trình truy nhập thiết bị vào/ra: processor rơi
vào trạng thái chờ
Hệ thống Xử lý theo lô đa chương trình
Cho phép thực hiện nhiều chương trình đồng thời
Nạp một phần mã và dữ liệu của các chương trình/tiến
trình vào bộ nhớ (phần còn lại sẽ được nạp tại thời điểm thích hợp).
Chương trình sẵn sàng được thực hiện
Thực hiện chương trình như hệ thống đơn chương trình
Nếu chương trình thực hiện vào ra, processor được
chuyển giao cho chương trình đang sẵn sàng khác
Tiết kiệm bộ nhớ (không cần nạp toàn bộ chương trình vào bộ
nhớ)
Hạn chế thời gian rỗi của processor
Chi phí cao cho điều phối processor. Chương trình nào tiếp
theo sẽ được sử dụng processor?
Giải quyết vấn đề chia sẻ bộ nhớ giữa các chương trình
Hệ thống phân chia thời gian
Chia sẻ thời gian của processor cho các chương trình/tiến
trình đang sẵn sàng thực hiện
Nguyên tắc giống như hệ thống xử lý theo lô đa chương
trình(nạp một phần của các chương trình)
Processor được phân phối lại phụ thuộc chủ yếu vào sự điều
phối của hệ điều hành ⇒ Điều phối như thế nào? ⇒ Chương 2
Thời gian hoán đổi giữa các tiến trình nhỏ, các chương
trình tạo cảm giác như hoạt động song song
Thường được gọi: Hệ điều hành đa nhiệm (Windows)
Hệ thống song song
Xây dựng cho các hệ thống có nhiều bộ vi xử lý
Nhiều VXL, công việc thực hiện nhanh chóng hơn
(Amdahl 67)
Độ tin cậy cao: hỏng một VXL không ảnh hưởng đến hệ
thống
Ưu thế hơn hệ thống nhiều máy có một VXL vì cùng chia
xẻ bộ nhớ, thiết bị ngoại vi..
Đa xử lý đối xứng (SMP: symmetric)
Mỗi bộ xử lý chạy một tiến trình/luồng
Các VXL giao tiếp với nhau thông qua một bộ nhớ dùng
chung
Cơ chế chịu lỗi và khả năng cân bằng tải tối ưu
Vấn đề: Đồng bộ giữa các VXL
Ví dụ: HĐH WinNT
Đa xử lý không đối xứng (ASMP: asymmetric)
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 theo dạng quan hệ chủ tớ: Bộ xử lý chính lập
lịch cho các bộ xử lý khác
Hệ thống phân tán
Mỗi bộ xử lý có bộ nhớ cục bộ riêng, và trao đổi với nhau
thông qua các đường truyền thông
Các VXL thường khác nhau về kích thước và chức năng (Máy cá
nhân, máy trạm, máy mini,..)
Hệ thống phân tán được sử dụng để
Chia xẻ tài nguyên : cung cấp cơ chế để chia xẻ tập
tin, in ấn tại một vị trí xa...
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 thực hiện một lúc trên nhiều vị trí khác nhau.
An toàn: Một vị trí trong hệ thống bị hỏng, các vị
trí khác vẫn tiếp tục làm việc
Hệ thống xử lý thời gian thực
Được sử dụng chủ yếu trong lĩnh vực điều khiển.
Giải quyết bài toán không muộn hơn một thời điểm nào đó
Mỗi bài toán có một hạn định (deadline)
Hệ thống phải cho kết quả chính xác trong khoảng thời
gian xác định
Hệ điều hành này đòi hỏi sự phối hợp cao giữa phần mềm và
phần cứng.
5. Tính chất cơ bản của hệ điều hành
Độ tin cậy cao
Mọi hoạt động thông báo của HDH phải chuẩn xác
Cung cấp thông tin chỉ khi chắc chắn đúng
Khi gặp lỗi: thông báo và ngừng xử lý hoặc trao quyền
quyết định cho người dùng
Cần có hỗ trợ từ thiết bị
An toàn
Dữ liệu và chương trình phải được bảo vệ
Không bị thay đổi ngoài ý muốn và trong mọi chế độ làm việc
Hạn chế truy nhập bất hợp pháp
Các tài nguyên khác nhau có yêu cầu bảo vệ khác nhau
Bảo vệ nhiều mức với nhiều công cụ khác nhau
Quan trọng với hệ điều hành đa nhiệm
Hiệu quả
Các tài nguyên phải được khai thác triệt để;
Tài nguyên hạn chế vẫn giải quyết được những yêu cầu phức
tạp
Hệ thống cần phải duy trì được tính đồng bộ
Các thiết bị tốc độ chậm không ảnh hưởng tới hoạt ddoognj
của toàn hệ thống
Tổng quát theo thời gian
Hệ thống phải có tính kế thừa
Các thao tác thông báo không được thay đỏi
Nếu thay đổi thông báo và hướng dẫn cữ thể
Đảm bảo tính kế thừa duy trì và pháy triển người sử dugnj
Hệ thống cần phảu có khả năng thích nghi với những thay đổi có
thể xảy ra
Thuận tiện
Dễ sử dụng
Nhiều mức với hiệu quả khác nhau
Có hệ thống trợ giúp phong phú
6. Cấu trúc hệ điều hành
Những thành phân của hệ thống
Quản lý tiến trình
tiến trình sử dụng tài nguyên của hê thống để hoàn thành
công việc
tài nguyên đucợ cấp khi tiến trình được khởi tạo và
trả về khi kết thúc
Hệ thống tồn tại nhiều tiến trình tại 1 thời điểm: tiến
trình hệ thống tiến trình người sử dụng
Nhiệm vụ của hệ điều hành trong quản lý tiến trình:
Tạo và hủy 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 lại một tiến trình
Cung cấp cơ chế đồng bộ tiến trình
Cung cấp cách thông tin giữa các tiến trình
Cung cấp cơ chế kiểm soát bế tắc giữa các tiến trình
Quản lý bộ nhớ chính
Vai trò của Hệ điều hành trong việc quản lý bộ nhớ chính
Lưu giữ thông tin về các vị trí trong bộ nhớ đã được
sử dụng và ai sử dụng
Quyết định tiến trình nào được nạp vào bộ nhớ chính,
khi bộ nhớ đã có thể dùng được
Cấp phát và thu hồi bộ nhớ khi cần thiết
Quản lý hệ thống vào ra
Mục đích: 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 cho người sử dụng dễ thao tác hơn
Quản lý hệ thống vào ra bao gồm
Thành phần quản lý bộ nhớ gồm buffering, caching,
spooling
Giao tiếp điều khiển thiết bị (device drivers) tổng
quát.
Bộ điều khiển cho các thiết bị phần cứng đặc biệt.
Chỉ có device driver mới hiểu đến cấu trúc đặc thù của thiết bị mà nó mô tả
Quản lý file
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,
File (Tập tin)đơn vị lưu trữ cơ bản nhất
Nhiệm vụ của quản lý file
Tạo/ xoá một tập tin/ thư mục.
Hỗ trợ các thao tác trên file và thư mục
Ánh xạ file trên hệ thống lưu trữ phụ.
Backup hệ thống file trên các thiết bị lưu trữ.
Quản lý bộ nhớ lưu trữ
Chương được lưu trữ trên bộ nhớ phụ (đĩa từ) cho tới khi nó
được nạp vào trong bộ nhớ chính và thực hiện sử dụng đĩa để chứa dữ liệu và kết quả
xử lý
Có thể sử dụng đĩa để chứa dữ liệu và kết quả xử lý tạm
thời:
bộ nhớ ảo
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
Cung cấp vùng lưu trữ theo yêu cầu
Lập lịch cho truy nhâp đĩa hiệu quả
Hệ thống trao đổi dữ liệu(mạng)
Hệ thống phân tán gồm tập các VXL (có thể không đồng nhất)
không có đồng hồ và bộ nhớ chung. Mỗi VXL có bộ nhớ cục bộ riêng
Các VXL liên kết qua hệ thống mạng truyền thông
Truyền thông được thực hiện nhờ các giao thức (FTP,HTTP...)
Hệ phân tán cho phép người sử dụng truy nhập tới các tài
nguyên khác nhau
Truy nhập tới tài nguyên dùng chung cho phép
Tăng tốc độ tính toán
Tăng khả năng sẵn sàng của dữ liệu
Tăng độ tin cậy của hệ thống
Hệ thống bảo vệ
Hệ thống nhiều người dùng đồng thời ⇒ Các tiến trình phải
được bảo vệ từ các sự hoạt động của tiến trình khác
Bảo vệ là cơ chế kiểm soát truy nhập của chương trình, tiến
trình hay người dùng tới hệ thống hoặc các tài nguyên người dùng
Cơ chế bảo vệ đòi hỏi
Phân biệt giữa sử dụng hợp pháp và không hợp pháp
Xác lập các kiểm soát được áp đặt
Cung cấp phương tiện ép buộc
Giao diện người dùng
Thực hiện câu lệnh người dùng. Các câu lệnh được cung cấp
cho hệ điều hành bởi các câu lệnh điều khiển nhằm
Tạo và quản lý tiến trình
Quản lý bộ nhớ chính, bộ nhớ lưu trữ
Truy nhập hệ thống file
Bảo vệ
Hệ thống mạng
. . .
Giao diện người dùng có thể là dòng lệnh (DOS, UNIX) hay
thân thiện hơn nhờ dùng giao diện đồ họa (Windows, MacOS)
Dịch vụ hệ điều hành
Dịch vụ chính:
- Thi hành chương trình : hệ thống có khả năng nạp chương
trình vào bộ nhớ và thi hành. Chương trình phải chấm dứt thi hành theo cách thông
thường hay bất thường (lỗi)
- Thao tác nhập xuất : Để tăng tính hiệu quả, chương trình
không truy xuất trực tiếp các thiết bị vào/ra. Hệ điều hành phải cung cấp phương
tiện để thực hiện vào ra.
- Thao tác trên hệ thống tập tin Chương trình có khả năng
đọc, viết tạo xóa file
- Truyền thông: Trao đổi thông tin giữa các tiến trình đang
thực thi trên cùng một máy hoặc trên các máy trong mạng.
Truyền thông được thực hiện nhờ bộ nhớ phân chia hoặc
bằng kỹ thuật chuyển thông điệp.
- Phát hiện lỗi : Đảm bảo thực hiện chính xác bởi chỉ ra
lỗi tại CPU, bộ nhớ, trong thiết bị vào ra hay trong các chương trình. Mỗi dạng
lỗi, HĐH sẽ có cách giải quyết tương ứng
Dịch vụ phụ trợ
KHÔNG TRỢ GIÚP NGƯỜI DUGNF MÀ ĐỂ VẬN HÀNH HỆ THỐNG HIỆU QUẢ
- Cung cấp tài nguyên : Phân phối tài nguyên cho nhiều
người dùng hoặc nhiều công việc thực diện tròng cùng thời điểm
- Thống kê báo cáo : Lưu giữ thông tin về loại và số lượng
tài nguyên sử dụng, nhằm sử dụng cho tính toán (giá thành sử dung), nghiên cứu (cải
tiến hệ thống)
- Bảo vệ : Đảm bảo mọi truy nhập tới các tài nguyên hệ
thống đều được kiểm soát
Lời gọi hệ thống
Cung cấp một giao tiếp giữa tiến trình và hệ điều hành
Phân loại lời gọi hệ thống:
Quản lý tiến trình: khởi tạo tiến trình, huỷ tiến trình..
Quản lý bộ nhớ: cấp phát và giải phóng bộ nhớ...
Quản lý file: tạo mới, xoá, đọc và ghi file...
Quản lý thiết bị vào ra: thực hiện trao đổi vào/ra...
Trao đổi thông tin với hệ thống lấy/đặt ngày giờ...
Truyền thông liên tiến trình
Các cấu trúc hệ thống
Cấu trúc đơn giản (MSDOS, )
Cấu trúc theo lớp(UNIX, OS2)
Máy ảo (MSDOS chạy trên nền Window, máy ảo JAVA)
Mô hình Client-Server(WINNT)
7. Nguyên tắc xây dựng hệ điều hành
Nguyên tắc modul
Nguyên tắc tương đối trong định vị
Nguyên tắc macroprocessor
Nguyên tắc khởi tạo trong cài đặt
Nguyên tắc lặp chức năng
Nguyên tắc giá trị chuẩn
Nguyên bảo vệ nhiều mức

Chương 2: Quản lý tiến trình


Abstract:
Khi chương trình đang thực hiện
được cung cấp tài nguyên(CPU, bộ nhớ, thiết bị vào/ra)
tài nguyên được cấp khi bắt đầu chương trình hay trong khi
chương trình đang được thực hiện
Gọi là tiến trình(process)
Hệ thống bao gồm tập các tiến trình thực hiện đồng thời
Tiến trình hệ điều hành Thực hiện mã lệnh hệ thống
Tiến trình người dùng: Thực hiện mã lệnh người dùng
Tiến trình có thể chứa một hoặc nhiều luồng điều khiển
Trách nhiệm của Hệ điều hành: Đảm bảo hoạt động của tiến trình và tiều
trình(luồng)
Tạo/xóa tiến trình(người dùng, hệ thống)
Điều phối tiến trình
Cung cấp cơ chế đồng bộ, truyền thông và ngăn ngừa tình trạng bế
tắc giữa tiến trình
1. Tiến trình
1.1Khái niệm tiến trình
Trạng thái hệ thống
Vi xử lý: Giá trị các thanh ghi
Bộ nhớ: Nội dung các ô nhớ
Thiết bị ngoại vị: Trạng thái thiết bị
Thực hiện chương trình => Trạng thái hệ thống thay đổi
Thay đổi rời rạc, theo từng câu lệnh được thực hiện
Tiến trình là một dãy thay đổi trạng thái của hệ thống
Chuyển từ trạng thái này sang trạng tháu khác được thực hiện theo
yêu cầu nằm trong chương trình của người sử dụng
Xuất phát từ một trạng thái ban đầu
Tiến trình là sự thực hiện chương trình
Tiến trình Chương trình
thực thể chủ động Thực thể thụ động
bộ đếm lệnh, tập tài nguyên Nội dung ghi trên đĩa
Mã chương trình:
Lệnh máy
Dữ liệu: Biến được
lưu và sử dụng trong bộ nhớ
Biến toàn
cục
Biến được
cung cấp động
Biến stack
Thư viện liên kết
động
Không được
dịch và liên kết cùng với chương trình
Khi chương trình
đang thực hiện, tài nguyên tối thiểu cần có
Bộ nhớ cho
mã chương trình và dữ liệu
Các thanh
ghi của VXL phục vụ cho quá trình thực hiện
Chương trình có thể
chỉ là một phần của trạng thái tiến trình
Một chương trình, nhiều tiến trình(bộ dữ liệu khác nhau)
Gọi tới nhiều tiến trình
Dịch và thực hiện một chương trình
DỊCH
MÃ NGUỒN __COMPILER/ASEMBLER__> MÃ NHỊ PHÂN (.o file) __THƯ VIỆN
TĨNH_+_LINKER__> FILE THỰC THI (theo định dạng của OS) (Header+Mã lệnh+Dữ liệu+Các
đoạn khác)__ loader/exec__> không gian địa chỉ cảu tiến trình
Đoạn
DLL's
Stack
Heap
Dữ liệu
Mã lệnh
THỰC HIỆN MỘT CHƯƠNG TRÌNH
Hệ điều hành tạo một tiến trình và phân phối vùng nhớ cho nó
Bộ thực hiện (loader/exec)
Đọc và dịch(interprets) file thực thi (headef file)
Thiết lập không gian địa chỉ cho tiến trình để chứa mã lệnh
và dữ liệu từ file thực thi
Đặt các tham số dòng lệnh, biến môi trường(argc, argv,
envp) vào stack
Thiết lập các thanh ghi của VXL tới các giá trị thích hợp
và gọi hàm "_start()" (hàm của hệ điều hành)
Chương trình bắt đầu thực hiện tại "_start()". Hàm này gọi tới
hàm main() (hàm của chương trình)
=> "tiến trình" dang thực hiện, không còn đề cập đến chương trình
nữa
Khi hàm main() kết thúc, OS gọi tới hàm "_exit()" để hủy bỏ tiến
trình và thu hồi tài nguyên
TIẾN TRÌNH LÀ CHƯƠNG TRÌNH ĐANG THỰC HIỆN
Trạng thái tiến trình
Khởi tạo (new): Tiến trình đang được khởi tạo
Sẵn sàng(Ready): Tiến trình đã đợi sử dụng processor vật lý
Thực hiện(Running) Các câu lệnh của tiến trình đang được thực
hiện
Chờ đợi(Waiting) Tiến trình đang chờ đợi một sự kiện nào đó xuất
hiện (Sự hoàn thành thao tác vào/ra)
Kết thúc(Terminated) Tiến trình thực hiện xong
Trạng thái của tiến trình là một phần trong hoạt động hiện tại của tiến
trình

Lưu đồ thay đổi trạng thái tiến trình slide 2/12


Hệ thống có 1 processer
Có duy nhất một tiến trình ở trạng thái thực hiện
Có thể có nhiều tiến trình ở trạng thái chờ đợi hoặc sẵn sàng
Khối điều khiển tiến trình(PCB: Process Control Block)
Mỗi tiến trình được thể hiện trong hệ thống bới một khối điều
khiển tiến trình
PCB: Cấu trúc thông tin cho phép xác định duy nhất một tiến trình
Trạng thái tiến trình
Bộ đếm lệnh
Các thanh ghi của CPU
Thông tin dùng để điều phối tiến trình
Thông tin quản lý bộ nhớ
Thông tin tài nguyên có thể sử dụng
Thông tin thống kê
-----
Con trỏ tới một PCB khác
Tiến trình đơn luông và tiến trình đa luồng
Tiến trình đơn luông: Là tiến trình chỉ có một luông thực thi
Có một luồng câu lệnh thực thi
Cho phép thực hiện chỉ một nhiệm vụ tại một thời điểm
Tiến trình đa luồng: Là tiến trình có nhiều luông thực thi
Có nhiều luồng câu lệnh thực thi
Cho phép thực hiện nhiều hơn 1 nhiệm vụ tại một thời điểm
1.2 Điều phối tiến trình (process Scheduling)
Mục đích: Sử dụng tối đa thời gian của CPU
=> Cần có nhiều tiến trình trong hệ thống
Vấn đề: Luân chuyển CPU giữa các tiến trình
=> Phải có hàng đợi cho các tiến trình
Đối với hệ thống một Processor
=> Một tiến trình thực hiện
=> Các tiến trình khác phải đợi tới khi CPU tự do
Các hàng đợi tiến trình I
job-queue: Tập các tiến trình trong hệ thống
Ready-Queue Tập các tiến trình tồn tại trong bộ nhớ, đang sẵn
sàng và chờ đợi để được thực hiện
Device queues Tập các tiến trình đang chời đợi một thiết bị vào
ra. Phân biệt hàng đợi cho từng thiết bị
image
Các hàng đợi tiến trình II
Các tiến trình du chuyển giữa các hàng đợi khác nhay

Tiến trình mới tạo được đặt trong hàng đợi sẵn sàng và đợi tới
khi lựa chọn để thực hiện
Các hàng đợi tiến trình III
Tiến trình được chọn và đang thực hiện
Đưa ra một yêu cầu vào raL đợi trong một hàng đợi thiết bị
Tạo một tiến trình con và đợi tiến trình con kết thúc
Hết thời gian sử dụng CPU, phải quay lại hàng đợi sẵn sàng
Trường hợp(1&2) sau khi sự kiện chờ đợi haonf thành
Tiến trình chuyển từ trạng thái đợi sang trạng thái sẵn
sàng
Tiến trình quay lại hàng đợi sẵn sàng
Tiến trình tiếp tục chu kỳ(sẵn sàng, thực hiện, chờ đợi) cho đến
khi kết thúc
Xóa khỏi tất cả các hàng đợi
PCB và tài nguyên đã cấp được giải phóng
Bộ điều phối (Scheduler)
Lựa chọn tiến trình trong hàng đợi
Điều phối công việc(job scheduler: Long-term
Scheduler)
Điều phối CPU (CPU sheduler: short-term shceduler)
Điều phối công việc
Chọn các tiến trình từ hàng đợi tiến trình được lưu trong
các vùng đệm (đĩa từ) và đưa vào bộ nhớ để thực hiện
Thực hiện không thường xuyên (đơn vị giây/phút)
Điều khiển mức độ đa chương trình (số t/trình trong bộ nhớ)
Khi mức độ đa chương trình ổn định, điều phối công việc
được gọi chỉ khi có tiến trình rời khỏi hệ thống
Vấn đề lựa chọn công việc
Tiên trình thiên về vào/ra: Sử dụng ít thời gian CPU
Tiến trình thiên về tính toán: Sử dụng nhiều thời
gian CPU
Cần lựa chọn lẫn cả 2 loại tiến trình:
Tiến trình vào ra: Hàng đợi sẵn sàng rỗng, lãng
phí CPU
Tiến trình tính toán: Hàng đợi thiết bị rỗng,
lãng phí thiết bị
Điều phối CPU
Lựa chọn một tiến trình từ hàng đợi các tiến trình đang sẵn
sàng thực hiện và phân phối CPU cho nó
Được thực hiện thường xuyên(VD 100ms/lần)
Tiến trình thực hiện vài ms rồi thực hiện vào ra
Lựa chọn tiến trình mới, đang sẵn sàng
Phải thực hiện nhành
10ms để quyết định => 10/110 = 9% thời gian CPU lãng
phí
Vấn đề luân chuyển CPU từ tiến trình này tới tiến trình
khác
Phải lưu trạng thái tiến trình cũ (PCB) và khôi phục
trạng thái cho tiến trình mới
Thời gian luân chuyển là lãng phí
Có thể được hỗ trợ bởi phần cứng
Vấn đề lựa chọn tiến trình (điều phối CPU)
Swapping tiến trình(Medium-term scheduler)
Nhiệm vụ
Đưa tiến trình ra khỏi bộ nhớ (làm giảm mức độ đa
chương trình)
Sau đó đưa tiến trình quay trở lại (có thể ở vị trí
khác) và tiếp tục thực hiện
Mục đích: Giải phóng vùng nhớ, tạo vùng nhớ tự do rộng hơn'
Chuyển ngữ cảnh (context switch)
Chuyển CPU từ tiến trình này sang tiến trình khác(hoán đổi
tiến trình thực hiện)
Thực hiện khi xuất hiện tín hiệu ngắt (ngắt thời gian) hoặc
tiến trình đưa ra lời gọi hệ thống (thực hiện vào ra)
Lưu đồ của chuyển CPU giữa các tiesn trình
1.3 Thao tác trên tiến trình
Tạo tiến trình
Tiến trình có thể tạo nhiều tiến trình mới cùng hoạt ddoognj
(CreateProcess9(),fork())
Tiến trình tạo: tiến trình cha
Tiến trình được tạo: tiến trình con
Tiến trình con có thể tạo nhiều tiến trình con khác => Cây tiến
trình
Vấn đê phân phối tài nguyên
Tiến trình con lấy tài nguyên từ hệ điều hành
Tiến trình con lấy tài nguyên từ tiến trình cha
Tất cả các tài nguyên
Một phần tài nguyên của tiến trình cha(ngăn ngừa việc
tạo quá nhiều tiến trình con)
Vấn đề thực hiện
Tiến trình cha tiếp tục thực hiện đống thời với tiến trình
con
Tiến trình cha đợi tiến trình con kết thúc
Kết thúc tiến trình
Hoàn thành câu lệnh cuối và yêu cầu HDH xóa nó (exit)
Gửi trả dữ liệu tới tiến trình cha
Các tài nguyên đã cung cấp được trả lại hệ thống
Tiến trình cha có thể kết thúc sự thực hiện của tiến trình con
Tiến trình cha phải biết định danh tiến trình con => tiến
trình con phải gửi định fanh cho tiến trình cha khi được khởi tạo
Sử dụng lời gọi hệ thống(abort)
Tiến trình cha kết thúc tiến trình con khi
Tiến trình con sử dụng vượt mức tài nguyên được câos
Nhiệm vụ cung caaos cho tiến trình con không còn cần thiết
nữa
Tieeys trình cha kết thúc và hệ điều hành không cho pheeys
tiến trình con tồn tại khi tiến trình cha kết thúc
1.4 Hợp tác tiến trình
Phân loại tiến trình
Các tiến trình tuần tự
Điểm bắt đầu của tiến trình này nằm sau điểm kết thúc của
tiến trình kia
Các tiến trình song song
Điểm bắt đầu của tiến trình này nằm giữa điểm bắt dầu và
kết thúc của tiến trình kia
Độc lập: Không ảnh hưởng tới hoặc bị ảnh hưởng bởi tiến
trình khác đang thực hiện trong hệ thống
Có hợp tác: Ảnh hưởng tới hoặc chịu ảnh hưởng bởi tiến
trình khác đang thực hiện trong hệ thống
Hợp tác tiến trình nhằm:
Chia sẻ thông tin
Tăng tốc ddoj tính toán
Module hóa
tiện dụng
Hợp tác tiến trình đòi hỏi cơ chế cho phép
Truyền thông giữa các tiến trình
Đồng bộ hóa hoạt động của các tiến trình
Bài toán producer and consumer
1.5 Truyền thông liên tiến trình
Trao đổi giữa các tiến trình
Dùng mô hình bộ nhớ phân chia
Các tiến tình chia sẻ vùng nhớ chính
Mã cài đặt được viết tường minh bởi người lập trình ứng
dụng
Dùng mô hình truyền thông liên tiến trình
Là cơ chế cho phép các tiến trình truyền thông và đồng bộ
các hoạt động
Thường được sử dụng trong các hệ phân tán khi tiến trình
truyền thông nằm trên các myas khác nháu
Đảm bào bởi hệ truyền thông thông điệp
Hệ truyền thông thông điệp
Cho phép các tiến trình trao đổi với nhay không qua sử dụng các
biến phân chia
Yêu cầu 2 thao tác cơ bản:
Send(msg) Các msg có kích thước cố định hoặc thay đổi
Cố địnhL dễ cài đặt mức hệ thống, nhiệm vụ lập trình
khó
Thay đổi: Cài đặt mức hệ thống phức tạp, lập trình
đơn giản
Receive(msg)
Nếu 2 tiến trình P-G muốn trao đổi, chúng cần
Thiệt lập một liên kết truyền thống (vật lý/logic) giữa
chung
Trao đổi các msg nhờ các thao tác send/receive
Các vấn đề cài đặt
Các liên kết được thiết lập như thế nào
Một liên kết có thể dùng cho nhiều hơn 2 tiến trình
Bao nhiêu liên kết có thể tồn tại giữa mọi cặp tiến trình
Kích thước thông báo mà liên kết chấp nhận cố định/thay
đổi?
Liên kết một hay hai chiều'
Truyền thông trực tiếp
Các tiến trình phải gọi tên tiến trình nhận/ gửi một cách tường
mình
Send(P,msg) gửi msg đến P
Receive(G,msg) nhận msg từ G
Tính chất của liên kết truyền thông
Các liên kết được thiết lập tự động
Một liên kết gắn chỉ với cặp tiến trình truyền thông
Chỉ tồn tạo một liên kết giữa cặp tiến trình
Liên kết có thể là một chiều, nhưng thường 2 chiều
Truyền thông gián tiếp
Các thông điệp được gửi/nhận tới/từ các hòm thư (mailbox), cổng
(ports)
Mỗi hòm thư có định danh duy nhất
Các tiến trình có thể trao đổi nếu chúng dùng chung hòm thư
Tính chất các liên kết
Các liên kết được thiết lập chỉ khi các tiến trình dùng
chung hòm thư
Một liên kết có thể được gẵn với nhiều tiến trình
Mỗi cặp tiến trình có thể dùng chung nhiều liên kết truyền
thông
Liên kết có thể một hay hai chiều
Các thao tác
Tạo hòm thư
Gửi nhận thông báo qua hòm thư
Send(A,msg) Gửi mọtọ msf tới hòm thư A
Receive(A,msg) Nhận một msg từ hòm thư A
Hủy bỏ hòm thư
Vấn đề đồng bộ hóa
Truyền thông diệp có thể phảu chờ đợi (blocking) hoặc không chờ
đợi (non blocking)
Blocking Tuyền thông đồng bộ
Non-blcking Truyền thông không đồng bộ
Các thủ tục send() và receive() có thể bị chờ đọi hoặc không chờ
đợi
Blockiing send: tiến trình gửi thông bào và chời tới khi
msg được nhận bởi tiến trình nhận hoặc bởi hòm thư
Non blocking send: tiến trình gửi thông bóa và tiếp tục làm
việc
Blocking receive Tiến trình nhận phải đợi tới khi có thông
báo
Non-blocking receive tiến trình nhận trả về hoặc một thông
báo có giá trị hoặc một giá trị null
Vùng đệm:
Các thông điệp trao đổi giữa các tiến trình được lưu trong hàng
đợi tạm thời
Hàng đợi có thể được cài đặt theo
Khả năng chứa 0 (Zero capacity): Độ dài hàng đợi là 0
Không tồn tại thông điệp trong đường liên kết ⇒
Sender phải đợi cho tới khi thông điệp được nhận
Khả năng chứa có giới hạn(Bound capacity)
Hàng đợi có độ dài n ⇒ chứa nhiều nhất n thông
điệp
Nếu hàng đợi không đầy, thông điệp sẽ được lưu
vào trong vùng đệm và Sender tiếp tục bình thường
Nếu hàng đợi đầy, sender phải đợi cho tới khi
có chỗ trống
Khả năng chứa không giới hạn (Unbound capacity)
Sender không bao giờ phải đợi
Truyền thông trong hệ thống Client-Server
Socket
Được xem như đầu mút cho truyền thông, qua đó các ứng dụng
gửi /nhận dữ liệu qua mạng
Truyền thông thực hiện giữa các cặp Sockets
Bao gồm cặp địa chỉ IP và cổng
IP
port
Các loại sockets
Stream Socket: TCP/IP
Datagram Socket: UDP/IP
Win32 API: Winsock
Thiết lập quá trình tạo đôi dữ liệu
RPC(Remote Procedure Calls)
RMI(Remote Method Invocation)
RMI(Remote Medthod Invocation) Cơ chế truyền thông của java
2. Luồng
2.1 Giới thiệu
Tiến trình đơn luồng và đa luồng
Hệ điều hành truyền thống(MS-DOS, UNIX)
tiến trình có 1 luồng điều khiển(heavyweight process)
Hệ điều hành hiện này (Window, Linux)
tiến trình có thể gồm nhiều luống
Có thể thực hiện nhiwwuf nhiệm vụ tại một thời điểm
Khái niệm luồng
Là đơn vị sử dụng CPU cơ bản, gồm
Định danh luồng (ID Thread)
Bộ đếm chương trình (Program Computer)
Tập cac thanh ghi(Rigisters)
Không gian stack
Chia sẻ cùng các luồng khác trong cùng một tiến trình
Đoạn mã lệnh
Đoạn dữ liệu (đối tượng toàn cục)
Các tài nguyên hệ điều hành khác (file đang mở)
Các luồng có thể thực hiện cùng đoạn mã với ngữ cảnh (Tập thanh
ghi, Bộ đếm chương trình, stack) khác nhau
Còn được gọi là tiến trình nhẹ (LWP: Lightweight Process)
Một tiến trình có ít nhất là một luồng
Lợi ích của lập trình đa luồng
Tăng tính đáp ứng với người dùng
Cho phép chương trình vẫn thực hiện ngay khi một phần đang
chờ đợi (block) hoặc đang thực hiện tính toán tăng cường
Ví dụ trình duyệt Web (Web browser) đa luồng
Một luồng tương tác với người dùng
Một luồng thực hiện nhiệm vụ tải dữ liệu
Chia sẻ tài nguyên
Các luồng chia sẻ bộ nhớ và tài nguyên của tiến trình chứa

Tốt cho các thuật toán song song (sử dụng chung các
CTDL)
Trao đổi giữa các luồng thông qua bộ nhớ phân chia
Cho phép một ứng dụng chứa nhiều luồng hoạt động trong cùng
không gian địa chỉ
Tính kinh tế
Các thao tác khởi tạo, hủy bỏ và luân chuyển luồng ít tốn
kém
Minh họa được tính song song trên bộ đơn VXL do thời
gian luân chuyển CPU nhanh (Thực tế chỉ một luồng thực hiện)
Sử dụng kiến trúc nhiều vi xử lý
Các luồng chạy song song thực sự trên các bộ VXL khác
nhau
Cài đặt luồng
Luồng người dùng
Quản lý các luồng được thực hiện bởi chương trình ứng dụng
Nhân hệ thống không biết gì về sự tồn tại luồng
Điều phối tiến trình như một đơn vị duy nhất
Gán cho mỗi tiến trình một trạng thái duy nhất
Sẵn sàng, chờ đợi, thực hiện,..
Chương trình ứng dụng được lập trình theo mô hình đa luồng bởi sử
dụng thư viện luồng
Thư viện hỗ trợ tạo, hủy bỏ, truyền thông điệp giữa các
luồng, điều phối, lưu trữ, khôi phục trạng thái (context) luồng ,..
Ưu điểm
Nhanh chóng trong tạo và quản lý luồng
Nhược điểm
Khi một luồng rơi vào trạng thái chờ đợi, tất cả các luồng
trong cùng tiến trình bị chờ đợi theo ⇒Không tận dụng được ưu điểm của mô hình lập
trình đa luồng
Luồng mức hệ thống
Nhân duy trì thông tin về tiến trình và các luồng
Quản lý luồng được thực hiện bởi nhân
Không tồn tại các mã quản lý luồng trong ứng dụng
Điều phối luồng được thực hiện bởi nhân, dựa trên các luồng
Nhược điểm:
Chậm trong tạo và quản lý luồng
Ưu điểm:
Một luồng chờ đợi vào ra, không ảnh hưởng tới luồng khác
Trong môi trường đa VXL, nhân có thể điều phối các luồng
cho các VXL khác nhau
Hệ điều hành: Windows NT/2000/XP, Linux, OS/2,..
2.2 Mô hình đa luồng

3. Điều phối CPU


3.1 Các khái niệm cơ bản
Giới thiệu
Hệ thống có một processor → Chỉ có một tiến trình được thực hiện
tại một thời điểm
Tiến trình được thực hiện (chiếm dụng VXL) cho tới khi phải chờ
đợi một thao tác vào ra
Hệ đơn chương trình: CPU không được sử dụng ⇒Lãng phí
Hệ đa chương trình: cố gắng sử dụng CPU (đang rảnh rỗi)cho
các tiến trình khác (đang chờ đợi)
Cần nhiều tiến trình sẵn sàng trong bộ nhớ tại một
thời điểm
Khi một tiến trình phải chờ, hệ điều hành lấy lại
processor để phân cho tiến trình khác
Điều phối processor quan trong với hệ điều hành đa nhiệm
Luân chuyển CPU giữa các tiến trình → khai thác hệ thống
hiệu quả hơn
Điều phối processor là nền tảng trong thiết kế hệ điều hành
Chu trình thực hiện CPU-I/O
Tiến trình là chuỗi luân phiên giữa chu kỳ tính toán và chờ đợi
vào/ra
Bắt đầu bởi chu kỳ tính toán
Tiếp theo chu kỳ đợi vào/ra
Tính toán→ đợi vào/ra → tính toán → đợi vào/ra → . . .
Kết thúc: Tính toán (yêu cầu hệ thống kết thúc thực hiện)
Phân biệt các kiểu tiến trình
Dựa trên sự phân bổ thời gian cho các chu kỳ CPU & vào/ra
Tiến trình tính toán (CPU-bound process) có vài chu
kỳ CPU dài
Tiến trình vào ra (I/0-bound process) có nhiều chu kỳ
CPU ngắn
Để chọn giải thuật điều phối thích hợp
Bộ điều phối CPU
Lựa chọn một trong số các tiến trình đang sẵn sàng trong bộ nhớ
và cung cấp CPU cho nó
Các tiến trình phải sắp hàng trong hàng đợi
Hàng đợi FIFO, Hàng đợi ưu tiên, DSLK đơn giản . . .
Quyết định điều phối CPU xảy ra khi tiến trình
1 Chuyển từ trạng thái thực hiện sang trạng thái chờ đợi
(y/c vào/ra)
2 Chuyển từ trạng thái thực hiện sang trạng thái sẵn sàng
(hết thời gian sử dụng CPU → ngắt thời gian)
3 Chuyển từ trạng thái chờ đợi sang trạng thái sẵn sàng
(hoàn thành vào/ra)
4 Tiến trình kết thúc
Ghi chú
Trường hợp 1&4 ⇒Điều phối không trưng dụng (non-preemptive)
Trường hợp khác⇒Điều phối trưng dụng (preemptive)
Điều phối trưng dụng và điều phối không trưng dựng
Điều phối không trưng dụng (Điều phối độc quyền)
-Tiến trình chiếm CPU cho tới khi giải phóng bởi
Kết thúc nhiệm vụ
Chuyển sang trạng thái chờ đợi
-Không đòi hỏi phần cứng đặc biệt (đồng hồ )
-Ví dụ: DOS, Win 3.1, Macinto
Điều phối trưng dụng (Điều phối không độc quyền)
-Tiến trình chỉ được phép thực hiện trong khoảng thời
gian
-Kết thúc khoảng thời gian được định nghĩa trước,
ngắt thời gian xuất hiện, bộ điều vận (dispatcher) được kích hoạt để quyết định hồi
phục lại tiến trình hay lựa chọn tiến trình khác
-Bảo vệ CPU khỏi các tiến trình "đói-CPU"
-Vấn đề dữ liệu dùng chung
Tiến trình 1 đang cập nhật DL thì bị mất CPU
Tiến trình 2, được giao CPU và đọc DL đang cập
nhật
-Ví dụ: Hệ điều hành đa nhiệm WinNT, UNIX
3.2 Tiêu chuẩn điều phối
Tiêu chuẩn điều phối I
Sử dụng CPU (Lớn nhất)
Mục đích của điều độ là làm CPU hoạt động nhiều nhất có thể
Độ sử dụng CPU thay đổi từ 40% (hệ thống tải nhẹ) đến 90%
(hệ thống tải nặng).
Thông lượng (throughput) (Lớn nhất)
Số lượng tiến trình hoàn thành trong một đơn vị thời gian
Các tiến trình dài: 1 tiến trình/giờ
Các tiến trình ngắn: 10 tiến trình/giây
Thời gian hoàn thành (Nhỏ nhất)
Khoảng thời gian từ thời điểm gửi đến hệ thống tới khi quá
trình hoàn thành
Thời gian chờ đợi để đưa tiến trình vào bộ nhớ
Thời gian chờ đợi trong hàng đợi sẵn sàng
Thời gian chờ đợi trong hàng đợi thiết bị
Thời gian thực hiện thực tế
Tiêu chuẩn điều phối II
Thời gian chờ đợi (Nhỏ nhất)
Tổng thời gian chờ trong hàng đợi sẳn sàng (Giải thuật điều
độ CPU không ảnh hưởng tới các tiến trình đang thực hiện hay đang đợi thiết bị vào
ra)
Thời gian đáp ứng (Nhỏ nhất)
Từ lúc gửi câu hỏi cho tới khi câu trả lời đầu tiên được
tạo ra
Tiến trình có thể tạo kết quả ra từng phần
Tiến trình vẫn tiếp tục tính toán kết quả mới trong
khi kết quả cũ được gửi tới người dùng
Giả thiết: Các tiến trình chỉ có một chu kỳ tính toán (ms)
Đo đạc: Thời gian chờ đợi trung bình

3.3 Các giải thuật điều phối CPU


Đến trước phục vụ trước (FCFS: first come, first served)
Nguyên tắc:
Tiến trình được quyền sử dụng CPU theo trình tự xuất hiện
Tiến trình sở hưu CPU tới khi kết thúc hoặc chờ đợi vào ra
Đặc điểm
Đơn giản, dễ thực hiện
Tiến trình ngắn phải chờ đợi như tiến trình dài

You might also like