Tải bản đầy đủ (.docx) (28 trang)

IT6025 6(012) k15 nhóm số 1 nghiên cứu tìm hiểu về quản lý tiến trình trong hđh windows

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 (691.78 KB, 28 trang )

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
----------

BÀI TẬP LỚN MÔN HỌC:
NGUYÊN LÝ HỆ ĐIỀU HÀNH
Đề tài:
Nghiên cứu tìm hiểu về quản lý tiến trình trong HĐH Windows.

Giáo viên: Ths Nguyễn Tuấn Tú
Nhóm: 1
Lớp IT0625(012) _K15

Hà Nội, 2022


TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
----------

BÀI TẬP LỚN MÔN HỌC: HỆ ĐIỀU HÀNH

Đề tài:
Nghiên cứu tìm hiểu về quản lý tiến trình trong HĐH Windows.
Giáo viên: Ths Nguyễn Tuấn Tú
Nhóm: 1
Thành viên nhóm:

Lớp IT0625(012) _K15
1. Phạm


Văn Qn

2. Hồng

Đình Quyết

3. Nguyễn Thế Hải

Hà Nội, 2022


MỤC LỤC


LỜI NÓI ĐẦU
Hệ điều hành là thành phần quan trọng của máy tính đồng thời nó cũng
điều phối các chương trình trong máy tính. Để làm được điều đó hệ điều hành
cần phải có cơ chế đan xen hoạt động của các chương trình khác nhau, từ đó dẫn
đến sự xuất hiện khái niệm “tiến trình” – là chương trình đang trong quá trình
thực thi. Tiến trình là đơn vị thực thi cơ sở trong hệ thống chia sẻ thời gian thực.
Trong hệ điều hành đa chương tại một thời điểm ln tồn tại nhiều tiến trình
nhưng nó lại có những tài nguyên hữu hạn. Vì vậy hệ điều hành phải có cơ chế
cấp phát tài ngun cho tiến trình theo cơ chế định trước và cơ chế cho phép tiến
trình trao đổi thơng tin với nhau.
Tuy nhiên, mỗi hệ điều hành có những đặc trưng riêng trong sử dụng
thuật tốn xây dựng phần mềm quản lý tiến trình. Qua đề tài này, nhóm em sẽ
tập trung đến lượng kiến thức cơ bản quản lý tiến trình trong hệ điều hành
Windows. Với lượng kiến thức vừa đủ, nhóm chúng em sẽ mang đến một cái
nhìn khái quát về quản lý tiến trình trong Hệ điều hành Windows.
Trong quá trình thực hiện đề tài chúng em đã gặp khơng ít khó khăn. Thật

may mắn khi thấy được sự hướng dẫn của thầy Ths. Nguyễn Tuấn Tú đã nhiệt
tình giải đáp thắp mắc cũng nhưng hướng dẫn một cách chi tiết giúp

chúng em hiểu sâu về bài học. Bên cạnh đó cùng với sự cố gắng của
cả nhóm, chúng em đã hồn thành được tài liệu này. Chúng em rất mong
nhận được sự đóng góp của thầy giáo và các bạn để tài liệu hồn thiện hơn nữa.
Nhóm sinh viên thực hiện!

CHƯƠNG 1: TỔNG QUAN VỀ TIẾN TRÌNH
1.1.

Tiến trình

1.1.1.

Khái niệm

Tiến trình là một chương trình đang xử lý, nó sở hữu một con trỏ
lệnh, tập các thanh ghi và các biến. Để hồn thành nhiệm vụ của
mình, tiến trình cịn có thể yêu cầu một số tài nguyên hệ thống như:
CPU, bộ nhớ và các thiết bị vào/ra…

1.1.2.

Các loại tiến trình
4


Các tiến trình trong hệ thống có thể chia thành 2 loại: Tiến trình
tuần tự và tiến trình song song.

• Tiến trình tuần tự: là các tiến trình mà điểm khởi tạo của nó là
điểm kết thúc của tiến trình trước đó.
• Tiến trình song song: là các tiến trình mà điểm khởi tạo của
tiến trình này nằm ở thân của các tiến trình khác, tức là có thể
khởi tạo một tiến trình mới khi các tiến trình trước đó chưa
kết thúc. Tiến trình song song được chia thành nhiều loại:
- Tiến trình song song độc lập
- Tiến trình song song có quan hệ thơng tin
- Tiến trình song song phân cấp
- Tiến trình song song đồng mức

1.1.3.

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

Là một thực thể động, tiến trình có thể thuộc những trạng thái
khác nhau. Có nhiều cách phân biệt trạng thái tiến trình. Theo cách đơn
giản nhất, tiến trình thuộc một trong hai trạng thái: chạy và khơng chạy.
Chạy là khi các lệnh của tiến trình được CPU
thực hiện và khơng
chạy là trường hợp ngược lại, ví dụ khi CPU đang được phân phối cho
tiến trình khác hoặc khi tiến trình phải dừng để chờ kết quả vào/ra.
Cách sử dụng hai trạng thái tiến trình là quá đơn giản và không
đủ để phản ánh đầy đủ thông tin về trạng thái tiến trình. Trên thực tế, hệ
điều hành thường phân biệt năm trạng thái khác nhau của tiến trình: mới
khởi tạo, sẵn sàng, chạy, chờ đợi, kết thúc. Ý nghĩa cụ thể năm trạng
thái như sau:
• Trạng thái mới khởi tạo (new): tiến trình đang được tạo ra. Hệ
điều hành đã tạo ra các thông tin về tiến trình tuy nhiên tiến trình
chưa được thêm vào danh sách những tiến trình được phép thực

hiện. Thơng thường, tiến trình ở trạng thái này chưa nằm trong bộ
nhớ.
• Trạng thái sẵn sàng (ready): tiến trình chờ được cấp CPU để thực
hiện lệnh của mình.
• Trạng thái chạy (running): lệnh của tiến trình được CPU thực

hiện. Với những máy tính có một CPU và CPU có một lõi, tại
5


mỗi thời điểm chỉ có một tiến trình nằm trong trạng thái chạy.
• Trạng thái chờ đợi (waiting): tiến trình chờ đợi một sự kiện gì đó
xảy ra, ví dụ chờ tín hiệu từ tiến trình khác hoặc chờ kết thúc q
trình vào/ra. Trạng thái chờ đợi cịn được gọi là trạng thái bị
phong tỏa (blocked).
• Trạng thái kết thúc (halt): tiến trình khơng cịn nằm trong danh

sách các tiến trình được thực hiện nhưng vẫn chưa bị xóa. Tiến
trình thuộc về trạng thái này sau khi đã thực hiện xong hoặc bị
tiến trình khác kết thúc.

Hình 1.1. Mơ tả chuyển trạng thái của tiến trình.

1.1.4.

Quan hệ giữa các tiến trình

Các tiến trình hoạt động trong hệ thống tồn tại 2 mối quan hệ là: Độc
lập và Hợp tác (song hành)
*Quan hệ độc lập

Tiến trình được gọi là độc lập nếu hoạt động của nó khơng gây ảnh
hưởng và khơng bị ảnh hưởng bởi các tiến trình khác cũng đang hoạt động
của hệ thống.
6


Tiến trình độc lập có những đặc trưng sau:
• Trạng thái của nó khơng bị chia sẻ với bất kì tiến trình nào khác.
• Việc thực hiện tiến trình là đơn định (kết quả chỉ phụ thuộc vào

đầu vào).
• Tiến trình có thể tái hiện (lặp lại).
• Tiến trình có thể dừng hoặc bắt đầu lại mà không gây ảnh

hưởng tới các tiến trình khác trong hệ thống.
*Quan hệ hợp tác
Tiến trình được gọi là hợp tác (song hành) nếu hoạt động của nó gây
ảnh hưởng hoặc bị ảnh hưởng bởi các tiến trình khác cũng đang hoạt động
trong hệ thống. Tiến trình hợp tác có những đặc trưng sau:




Trạng thái của nó bị chia sẻ cho các tiến trình khác.
• Việc thực hiện tiến trình là khơng đơn định (kết quả phụ
thuộc dãy thực hiện tương ứng và không dự báo trước).
Tiến trình khơng thể tái hiện.

1.2.


Khối điều khiển tiến trình (Process Control Block – PCB)

Đại diện cho một tiến trình trong hệ điều hành là khối điều khiển tiến
trình (PCB). PCB là một cấu trúc dữ liệu chứa những thơng tin quan trọng về
tiến trình và có thể khác nhau trong các hệ thống khác nhau, trong đó thường
có:







Trạng thái hiện tại của tiến trình.
ID (Identifier) duy nhất cho tiến trình.
Độ ưu tiên (Priority) của tiến trình.
Thơng tin về bộ nhớ.
Thơng tin về các tài ngun tiến trình đang sử dụng.
Vùng để cho các thanh ghi.

PCB là đối tượng quan trọng, nhờ nó hệ điều hành có thể có được tồn
bộ thơng tin cơ bản nhất về một tiến trình. Khi hệ điều hành chuyển (Switch)
bộ xử lý từ đang phục vụ tiến trình này sang phục vụ tiến trình khác, nó dùng
vùng cho các thanh ghi trong PCB lưu thông tin giá trị các thanh ghi của hệ
thống để có thể tiếp tục thực hiện tiến trình mỗi khi tiến trình đến lượt được sử
dụng bộ xử lý.
7


Tóm lại, PCB là đối tượng chính đại diện cho tiến trình đối với hệ điều

hành. Vì hệ điều hành phải có khả năng thực hiện các thao tác với các PCB
khác nhau một cách nhanh chóng, trong nhiều hệ thống có những thanh ghi đặc
biệt ln chỉ tới PCB của tiến trình đang chạy (Running Process) và cũng có
những lệnh cài đặt ngay trong phần cứng để đảm bảo nhanh chóng ghi thơng
tin trạng thái vào PCB và tiếp theo là nhanh chóng đọc các thơng tin đó.

1.2.1.

Các thao tác với tiến trình

Hệ thống điều khiển tiến trình cần có khả năng thực hiện các thao tác với
tiến trình, trong đó có:
• Tạo tiến trình (Create).
• Huỷ tiến trình (Free, Destroy).
• Thay đổi độ ưu tiên (Priority).
• Dừng (Block) tiến trình.
• Kích hoạt (Waikup) tiến trình.
• Thực hiện (Dispatch) tiến trình

1.2.2.

Tiến trình tạo một tiến trình gồm nhiều thao tác nhỏ:

• Gán tên cho tiến trình.
• Đưa tên tiến trình vào danh sách

các tiến trình của hệ thống.
• Xác định mức ưu tiên (Priority) ban

đầu cho tiến trình.

• Tạo, nạp thơng tin PCB.
• Phân chia tài ngun khởi đầu cho tiến trình.

1.2.3.

Tạo mới tiến trình

Một tiến trình có thể tạo ra tiến trình mới. Tiến trình đầu tiên là tiến trình
cha (Parent Process) cịn tiến trình mới được tạo ra là tiến trình con (Child
Process). Để tạo tiến trình mới chỉ cần một tiến trình đã có. Tức là mỗi tiến
trình con chỉ có một tiến trình cha cịn một tiến trình cha có thể có nhiều tiến
trình con. Các quan hệ đó tạo ra kiến trúc tiến trình.
8


1.2.4.

Xóa tiến trình

Xố một tiến trình là loại bỏ nó khỏi hệ thống. Khi đó các tài nguyên
được phân chia cho tiến trình sẽ được giải phóng, trả lại cho hệ điều hành, tên
của tiến trình được xố khỏi tất cả các danh sách của hệ thống, còn PCB cũng
được giải phóng.

1.2.5.

Dừng/hỗn tiến trình

Một tiến trình bị hỗn–dừng (Suspended Process) là tiến trình khơng tiếp
tục được thực hiện đến khi có một tiến trình khác kích hoạt nó. Tạm dừng

(Suspending) là một thao tác quan trọng được sử dụng trong nhiều hệ thống với
các cách cài đặt, thực hiện khác nhau. Tạm dừng thường chỉ diễn ra trong
khoảng thời gian ngắn.

CHƯƠNG 2: ĐIỀU PHỐI TIẾN TRÌNH
2.1.

Mục tiêu điều phối

2.1.1.

Sự cơng bằng (Fairness)

Các tiến trình chia sẻ CPU một cách cơng bằng, khơng có tiến trình
nào phải chờ đợi vơ hạn để được cấp phát CPU

2.1.2.

Tính hiệu qủa (Efficiency)

Hệ thống phải tận dụng được CPU 100% thời gian.

2.1.3.

Thời gian đáp ứng hợp lý (Response time)

Cực tiểu hoá thời gian hồi đáp cho các tương tác của người sử dụng

2.1.4.


Thời gian lưu lại trong hệ thống (Turnaround Time)

Cực tiểu hóa thời gian hồn tất các tác vụ xử lý theo lơ.

2.1.5.

Thơng lượng tối đa (Throughput)

Cực đại hóa số cơng việc được xử lý trong một đơn vị thời gian.
Tuy nhiên thường không thể thỏa mãn tất cả các mục tiêu kể trên vì
bản thân chúng có sự mâu thuẫn với nhau mà chỉ có thể dung hịa chúng ở
mức độ nào đó.

2.2.

Tổ chức điều phối tiến trình
9


2.2.1.

Các danh sách sử dụng trong quá trình điều phối tiến

trình
Hệ điều hành sử dụng hai loại danh sách để thực hiện điều phối các tiến
trình là danh sách sẵn sàng (ready list) và danh sách chờ đợi (waiting list).
Khi một tiến trình bắt đầu đi vào hệ thống, nó được chèn vào danh
sách các tác vụ (job list). Danh sách này bao gồm tất cả các tiến trình của hệ
thống. Nhưng chỉ các tiến trình đang thường trú trong bộ nhớ chính và ở
trạng thái sẵn sàng tiếp nhận CPU để hoạt động mới được đư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à cấp
CPU cho tiến trình đó. Tiến trình được cấp CPU sẽ thực hiện xử lý, và có
thể chuyển sang trạng thái chờ khi xảy ra các sự kiện như đợi một thao tác
nhập/xuất hoàn tất, yêu cầu tài nguyên chưa được thỏa mãn, được yêu cầu
tạm dừng ...Khi đó tiến trình sẽ được chuyển sang một danh sách chờ đợi.
Hệ điều hành chỉ sử dụng một danh sách sẵn sàng cho toàn hệ thống,
nhưng mỗi một tài nguyên (thiết bị ngoại vi) có một danh sách chờ đợi riêng
bao gồm các tiến trình đang chờ được cấp phát tài nguyên đó.

Ảnh 2.1: Các danh sách điều phối

Quá trình xử lý của một tiến trình trải qua những chu kỳ chuyển đổi
qua lại giữa danh sách sẵn sàng và danh sách chờ đợi. Sơ đồ dưới đây mơ tả
sự điều phối các tiến trình dựa trên các danh sách của hệ thống.
Thoạt đầu tiến trình mới được đặt trong danh sách các tiến trình sẵn
sàng (ready list), nó sẽ đợi trong danh sách này cho đến khi được chọn để
10


cấp phát CPU và bắt đầu xử lý. Sau đó có thể xảy ra một trong các tình
huống sau:
Tiến trình phát sinh một yêu cầu một tài nguyên mà hệ thống chưa thể
đáp ứng, khi đó tiến trình sẽ được chuyển sang danh sách các tiến trình đang
chờ tài nguyên tương ứng.
Tiến trình có thể bị bắt buộc tạm dừng xử lý do một ngắt xảy ra, khi
đó tiến trình được đưa trở lại vào danh sách sẵn sàng để chờ được cấp CPU
cho lượt tiếp theo
.


Ảnh 2.2: Sơ đồ chuyển đổi giữa các danh sách điều phối

Trong trường hợp đầu tiên, tiến trình cuối cùng sẽ chuyển từ trạng
thái blocked sang trạng thái ready và lại được đưa trở vào danh sách sẵn
sàng. Tiến trình lặp lại chu kỳ này cho đến khi hồn tất tác vụ thì được hệ
thống hủy bỏ khỏi mọi danh sách điều phối.

2.2.2.

Các cấp độ điều phối

• Điều phối tác vụ
Quyết định lựa chọn tác vụ nào được đưa vào hệ thống, và nạp những
tiến trình của tác vụ đó vào bộ nhớ chính để thực hiện. Chức năng điều phối
tác vụ quyết định mức độ đa chương của hệ thống (số lượng tiến trình trong
bộ nhớ chính). Khi hệ thống tạo lập một tiến trình, hay có một tiến trình kết
thúc xử lý thì chức năng điều phối tác vụ mới được kích hoạt. Vì mức độ đa
chương tương đối ổn định nên chức năng điều phối tác vụ có tần suất hoạt
11


động thấp.
Để hệ thống hoạt động tốt, bộ điều phối tác vụ cần biệt tính chất của
tiến trình là hướng nhập xuất (I/O bounded) hay hướng xử lý (CPU
bounded). Một tiến trình được gọi là hướng nhập xuất nếu nó chủ yếu nó chỉ
sử dụng CPU để thực hiện các thao tác nhập xuất. Ngược lại một tiến trình
được gọi là hướng xử lý nếu nó chủ yếu nó chỉ sử dụng CPU để thực hiện
các thao tác tính tốn. Để cân bằng hoạt động của CPU và các thiết bị ngoại
vi, bộ điều phối tác vụ nên lựa chọn các tiến trình để nạp vào bộ nhớ sao cho
hệ thống là sự pha trộn hợp lý giữa các tiến trình hướng nhập xuất và các

tiến trình hướng xử lý.

• Điều phối tiến trình
Chọn một tiến trình ở trạng thái sẵn sàng (đã được nạp vào bộ nhớ
chính, và có đủ tài nguyên để hoạt động) và cấp phát CPU cho tiến trình đó
thực hiện. Bộ điều phối tiến trình có tần suất hoạt động cao, sau mỗi lần xảy
ra ngắt (do đồng hồ báo giờ, do các thiết bị ngoại vi...), thường là 1 lần
trong khoảng 100ms. Do vậy để nâng cao hiệu suất của hệ thống, cần phải
tăng tốc độ xử lý của bộ điều phối tiến trình. Chức năng điều phối tiến trình
là một trong chức năng cơ bản, quan trọng nhất của hệ điều hành.
Trong nhiều hệ điều hành, có thể khơng có bộ điều phối tác vụ hoặc tách
biệt rất ít đối với bộ điều phối tiến trình. Một vài hệ điều hành lại đưa ra một cấp
độ điều phối trung gian kết hợp cả hai cấp độ điều phối tác vụ và tiến trình

Ảnh 2.3: Cấp độ điều phối trung gian

2.3.

Các chiến lược điều phối

2.3.1.

First In First Out (FIFO) (hay còn gọi là FCFS)

12


Trong thuật toán này, độ ưu tiên phục vụ tiến trình căn cứ vào thời điểm
hình thành tiến trình. Hàng đợi các tiến trình được tổ chức theo kiểu FIFO. Mọi
tiến trình đều được phục vụ theo trình tự xuất hiện cho đến khi kết thúc hoặc bị

ngắt. Ưu điểm của thuật tốn này là giờ CPU khơng bị phân phối lại (khơng bị
ngắt) và chi phí thực hiện thấp nhất (vì khơng phải thay đổi thứ tự ưu tiên phục
vụ, thứ tự ưu tiên là thứ tự của tiến trình trong hàng đợi). Nhược điểm của thuật
tốn là thời gian trung bình chờ phục vụ của các tiến trình là như nhau (khơng kể
tiến trình ngắn hay dài), do đó dẫn tới ba điểm sau:
• Thời gian chờ trung bình sẽ tăng vơ hạn khi hệ thống tiếp cận tới hạn khả

năng phục vụ của mình.
• Nếu độ phát tán thời gian thực hiện tiến trình tăng thì thời gian chờ đợi
trung bình cũng tăng theo
• Khi có tiến trình dài, ít bị ngắt thì các tiến trình khác phải chờ đợi lâu hơn.

2.3.2.

Round Robin (RR)

Giải thuật định thời luân phiên (round-robin scheduling algorithm-RR)
được thiết kế đặc biệt cho hệ thống chia sẻ thời gian. Tương tự như định thời
FIFO nhưng sự trưng dụng CPU được thêm vào để chuyển CPU giữa các quá
trình. Đơn vị thời gian nhỏ được gọi là định mức thời gian (time quantum) hay
phần thời gian (time slice) được định nghĩa. Định mức thời gian thường từ 10
đến 100 mili giây. Hàng đợi sẳn sàng được xem như một hàng đợi vòng. Bộ định
thời CPU di chuyển vòng quanh hàng đợi sẳn sàng, cấp phát CPU tới mỗi q
trình có khoảng thời gian tối đa bằng một định mức thời gian. Để cài đặt định
thời RR, chúng ta quản lý hàng đợi sẳn sàng như một hàng đợi FIFO của các quá
trình. Các quá trình mới được thêm vào đi hàng đợi. Bộ định thời CPU chọn
quá trình đầu tiên từ hàng đợi sẳn sàng, đặt bộ đếm thời gian để ngắt sau 1 định
mức thời gian và gởi tới q trình. Sau đó, một trong hai trường hợp sẽ xảy ra.
Q trình có 1chu kỳ CPU ít hơn 1 định mức thời gian. Trong trường hợp này,
q trình sẽ tự giải phóng. Sau đó, bộ định thời biểu sẽ xử lý q trình tiếp theo

trong hàng đợi sẳn sàng. Ngược lại, nếu chu kỳ CPU của quá trình đang chạy dài
hơn 1 định mức thời gian thì độ đếm thời gian sẽ báo và gây ra một ngắt tới hệ
điều hành. Chuyển đổi ngữ cảnh sẽ được thực thi và quá trình được đặt trở lại tại
đuôi của hàng đợi sẳn sàng. Sau đó, bộ định thời biểu CPU sẽ chọn q trình tiếp
theo trong hàng đợi sẳn sàng.
13


*Ưu điểm:
• Các q trình sẽ được ln phiên cho CPU xữ lý nên thời gian chờ đợi ít.
• Đối với các quá trình liên quan đến nhập xuất, IO, người dùng thì rất hiệu

quả.
• Việc cài đặt khơng q phức tạp
*Nhược điểm:
• Thời gian chờ đợi trung bình dưới chính sách RR thường là q dài.
• Nếu thời gian định mức cho việc xữ lý quá lớn thì RR thành FIFO
• Nếu thời gian quá ngắn so với thời gian xữ lý của một tiến trình trong

danh sách hàng đợi thì việc chờ đợi và xữ lý luân phiên sẽ nhiều.
• Qui tắc là định mức thời gian nên dài hơn 80% chu kỳ CPU.

2.3.3.

Shortest Job First (SJF)

Một tiếp cận khác đối với việc định thời CPU là giải thuật định thời công
việc ngắn nhất trước (shortest-job-first-SJF). Giải thuật này gán tới mỗi quá trình
chiều dài của chu kỳ CPU tiếp theo cho q trình sau đó. Khi CPU sẵn dùng, nó
được gán tới q trình có chu kỳ CPU kế tiếp ngắn nhất. Nếu hai q trình có

cùng chiều dài chu kỳ CPU kế tiếp, định thời FIFO được dùng. Chú ý rằng thuật
ngữ phù hợp hơn là chu kỳ CPU kế tiếp ngắn nhất (shortest next CPU burst) vì
định thời được thực hiện bằng cách xem xét chiều dài của chu kỳ CPU kế tiếp
của quá trình hơn là tồn bộ chiều dài của nó. Chúng ta dùng thuật ngữ SJF vì
hầu hết mọi người và mọi sách tham khảo tới nguyên lý của loại định thời biểu
này như SJF.
*Ưu điểm:
• Giải thuật được xem là tối ưu, thời gian chờ đợi trung bình giảm
• Tận dụng hết năng lực của CPU

*Nhược điểm:
• Cài đặt thuật tốn phức tạp, tốn nhiều xữ lý cho quá trình quản lý.
• Mặc dù SJF là tối ưu nhưng nó khơng thể được cài đặt tại cấp định thời

CPU ngắn vì khơng có cách nào để biết chiều dài chu kỳ CPU tiếp theo.
14


• Giải thuật SJF có thể trưng dụng hoặc khơng trưng dụng CPU, dẫn tới giải

thuật này có nhiều dị bản khác nhau và sẽ tối ưu hay không tối ưu phụ
thuộc vào trưng dụng CPU.

2.3.4.

Shortest Remain Time (SRT)

Tương tự như SJF nhưng trong thuật toán này, độ ưu tiên thực hiện các
tiến trình dựa vào thời gian cần thiết để thực hiện nốt tiến trình(bằng tổng thời
gian trừ đi thời gian đã thực hiện). Như vậy, trong thuật toán này cần phải thường

xuyên cập nhật thông tin về giời gian đã thực hiện của tiến trình. Đồng thời, chế
độ phân bổ lại giờ CPU cũng phải được áp dụng nếu khơng sẽ làm mất tình ưu
việc của thuật tốn.
*Ưu điểm:
• Thời gian chờ đợi, tồn tại trong hệ thống của mỗi tiến trình đều ngắn
• Thuật tốn tối ưu nhất

*Nhược điểm:
• Việc cài đặt thuật tốn khá phức tạp
• Cần quản lý chặt chẽ việc điều phối các tiến trình
• Quản lý thời gian đến của mỗi tiến trình

CHƯƠNG 3: QUẢN LÝ TIẾN TRÌNH TRÊN WINDOWS
TRÊN WINDOWS 11
3.1.

Task Manager

Windows Task Manager là ứng dụng quản lý tiến trình kèm theo trong họ
hệ điều hành Microsoft Windows. Nó cung cấp thông tin đầy đủ về hiệu năng hệ
thống, các ứng dụng đang chạy, các tiến trình và sự phân chia CPU, thông tin về
bộ nhớ, sự hoạt động và thống kê mạng, người dùng đăng nhập và các dịch vụ
hệ thống.Task manager cũng có thể dùng để thiết lập mức độ ưu tiên cho các
tiến trình, chọn nhân CPU cho phép chạy một ứng dụng chỉ định, buộc dừng một
tiến trình và tắt máy, khởi động lại, ngủ đơng, đăng xuất.

15


Ảnh 3.1. Task Manager trên Windows 11


3.2.

Cách mở Task Manager

Có rất nhiều cách để mở Task Manager trên hệ điều hành Windows
11, cơ bản có 4 cách sau:
1. Nhấn tổ hợp phím Ctrl+Alt+Delete sẽ đưa bạn đến màn

hình Windows Security, cung cấp các tùy chọn để khóa PC
của bạn, chuyển đổi người dùng, đăng xuất và chạy Task
Manager.
2. Tổ hợp Ctrl+Shift+Esc là cách đơn giản nhất để mở Task
Manager trên Windows.
3. Click chuột phải vào Task bar và chọn Task Manager
(hoặc menu Power User bằng tổ hợp Window +X)
4. Chạy lệnh ‘taskmgr’ từ hộp Run box hoặc Start Menu

3.3.

Chức năng các Tab trong Task Manager

Để xem các chức năng nâng cao của Task Manager, cần nhấn vào
More details ở dưới cùng của chế độ xem đơn giản. Bạn sẽ thấy giao diện
đầy đủ với nhiều thông tin hơn về các tiến trình. Task Manager sẽ lưu lại tùy
chọn này của bạn cho các lần mở trong tương lai. Nếu muốn quay lại chế độ
xem đơn giản, chọn Fewer details.
Với nhiều thơng tin hơn, Task Manager bao gồm các Tab sau:



Processes: Thông tin sử dụng CPU, bộ nhớ, disk, network, GPU
của các tiến trình đang chạy và các tiến trình nền trên hệ thống máy
16


tính của bạn.


Performance: Biểu đồ thời gian thực hiển thị mức sử dụng tài
nguyên CPU, bộ nhớ, đĩa, mạng và GPU của hệ thống. Bạn cũng sẽ
tìm thấy chi tiết tài ngun hệ thống của máy tính.



App History: Tại đây chúng ta có thể xem lại lịch sử sử dụng tài



nguyên của các Apps. Phần này chỉ ghi lại ứng dụng nền tảng
Universal Windows Platform (UWP) apps—Store apps—không bao
gồm các ứng dụng Windows desktop apps (Win32 applications.)
Startup: Danh sách các chương trình tự kích hoạt khi người dùng
đăng nhập. Có thể loại bỏ các chương trình tự khởi động ở đây, mặc
dù bạn cũng có thể làm điều đó bằng cách vào Settings > Apps >
Startup.



Users: Thơng tin tài khoản người dùng đang sử dụng: số lượng tài
nguyên đang sử dụng và những tiến trình đang chạy trên user đó.

• Details: Thơng tin chi tiết hơn về các tiến trình đang chạy trên hệ

thống.


Services: Tại đây bạn có thể mở và quản lý các Service một cách dễ
dàng. Đây là cách mở thay thế cho cách thông thường mà chúng ta
vẫn thường dùng đó là sử dụng lệnh services.msc.

Task Manager giúp ta có thể quản lý các tác vụ một các dễ dàng và
hiệu qua thông qua các Tab sau:

3.3.1.

Tab Processes

Đây là thẻ quản lý các tiến trình hiển thị danh sách tiến trình đang chạy
trên hệ thống. Thường danh sách sẽ được xếp theo 3 nhóm: Nhóm ứng dụng
(Apps) hiển thị các chương trình đang chạy và các tiến trình con của nó, Hai loại
khác là các tiến trình nền và các tiến trình khác của Windows.

17


Ảnh 3.2: Tab Processes trong Task Managemer

Bạn có thể click chuột phải vào một tiến trình để xem các hành động có
thể thực hiện:



Expand: Mở rộng một số tiến trình được gom thành một nhóm như



Google Chorme. Tùy chọn này chỉ xuất hiện khi bạn nhấp chuột vào
một nhóm.
Collapse: Thu gọn một nhóm tiến trình được mở rộng.
End task: Kết thúc tiến trình.
Resource values: Cho phép bạn chọn hiển thị giá trị hoặc phần trăm



hoặc giá trị sử dụng bộ nhớ, disk, network của tiến trình đang sử
dụng.
Create dump file: Đây là một công cụ gỡ lỗi cho các lập trình viên.



Cơng cụ sẽ nạp nhanh bộ nhớ của chương trình và nạp nó vào ổ cứng.
Go to details: Chuyển tới Tab Details để xem nhiều thơng tin của tiến








trình hơn.
Open file location: Mở file thực thi .exe của tiến trình đang chạy.

Search online: Tìm kiếm tên của tiến trình trên Bing.
Properties: Mở tab thuộc tính cho tệp thực thi .exe của chương trình.

Bạn khơng nên kết thúc một tiến trình trừ khi bạn biết nhiệm vụ của
nó làm gì. Nhiều trong số những tiến trình này là các tiến trình nền quan
trọng đối với Windows.
Ngồi ra, Tab này cịn hiển thị cho phép nhìn thấy rằng tiến trình đang
chạy đó tốn hết bao nhiêu tài nguyên máy: sử dụng bao nhiêu năng lực của
18


CPU, ăn bao nhiêu RAM và truy xuất ổ cứng, mạng internet bao nhiêu.
Những mục này có thể sắp xếp theo kiểu tăng dần hoặc giảm dần. Vì vậy
nếu thấy máy tính chậm chạp bất thường hãy kiểm tra các tiến trình trong
đây và đưa ra giải pháp hợp lý nhất.

3.3.2.

Tab Performance

Tab Hiệu suất hiển thị các biểu đồ thời gian thực hiển thị việc sử dụng tài
nguyên hệ thống như CPU, bộ nhớ, đĩa, mạng và GPU. Nếu bạn có nhiều đĩa,
thiết bị mạng hoặc GPU, bạn có thể xem tất cả chúng một cách riêng biệt.

Ảnh 3.3: Tab Performance trong Task Manager

3.3.3.

Tab App history


Thẻ này sẽ thống kê tổng tài nguyên mà các apps đã sử dụng trong 1
khoảng thời gian xác định. Tab này giúp người dùng có cái nhìn tổng quan
về các apps trong máy tính và tìm ra được các apps khơng dùng đến hoặc sử
dụng quá nhiều tài nguyên của máy để có cách xử dụng hợp lý hơn.
Dưới đây là cái nhìn chi tiết về các tab History:





CPU time (tổng thời gian mà CPU phục vụ cho 1 tiến trình hoạt động)
Network (tổng dung lượng dữ liệu download và upload qua mạng
của tiến trình)
Metered Network (đồng hồ đo dữ liệu mạng mà tiến trình đang sử dụng)
Tiles updates (tổng sữ liệu gói).
19


Nếu click chuột phải vào một ứng dụng nào đó và chọn Switch To thì
Windows sẽ tự động chuyển qua ứng dụng đó.

Ảnh 3.4: Tab App history trong Task Manager

3.3.4.

Tab Startup

Tab Startup trong Task Manager liệt kê mọi ứng dụng tải khi khởi động
máy tính. Vì nhiều chương trình khởi động có thể ảnh hưởng xấu đến hiệu suất
của hệ điều hành, bạn có thể sử dụng tab này để quản lý chúng.


Ảnh 3.5: Tab Start-up trong Task Manager
20


3.3.5.

Tab Users

Tab Người dùng hiển thị danh sách người dùng đã đăng nhập và các quy
trình đang chạy của họ. Nếu bạn là người duy nhất đăng nhập vào PC Windows,
bạn sẽ chỉ thấy tài khoản người dùng của mình tại đây. Nếu những người khác đã
đăng nhập và sau đó khóa các phiên của họ mà khơng đăng xuất, bạn cũng sẽ thấy
các phiên bị khóa đó xuất hiện dưới dạng bị ngắt kết nối. Điều này cũng cho bạn
thấy CPU, bộ nhớ, đĩa, mạng và các tài nguyên hệ thống khác được sử dụng bởi
các quy trình chạy dưới mỗi tài khoản người dùng Windows.

Ảnh 3.6: Tab Users trong Task Manager

3.3.6.

Tab Details

Là một tính năng nâng cao của Tab Process. Nó liệt kê tất cả các tiến trình
đang chạy bao gồm các tiến trình của người sử dụng mở và các tiến trình chạy
nền hoặc của Windows. Tab này tương tự với Tab Process của Task Manager
trong windows 7.

21



Ảnh 3.7: Tab Details trong Task Manager

Bạn có thể thao tác với một tiến trình bằng cách click chuột phải vào
tiến trình đó sẽ hiện ra các hành động. Ngồi những hành động cơ bản giống
trên Tab Processes thì ở đây có thêm nhiều lựa chọn:

• End process tree: Kết thúc tiến trình và tất cả các tiến trình khác được tạo
bởi tiến trình


Set priority: Đặt một mứ độ ưu tiên cho tiến trình: thấp, dưới mức



trung bình, trung bình, trên mức trung bình, cao, và RealTime. Quá
trình thường bắt đầu với độ ưu tiên bình thường.
Set affinity: Chỉ định bộ xử lý cho tiến trình—nói cách khác, bộ xử



lý nào chạy tiến trình nào. Theo mặc định, các quá trình chạy trên tất
cả các bộ xử lý trong hệ thống. Bạn có thể sử dụng cơng cụ này để
giới hạn một tiến trình cho một bộ xử lý cụ thể. Ngay cả khi máy có 1
CPU thì mỗi Core xuất hiện như một bộ xử lý tiến trình riêng.
Analyze wait chain: Xem luồng của tiến trình nào đang chờ. Hiển thị



các tiến trình và luồng đang chờ để sử dụng tài nguyên hệ thống. Điều

này rất hữu ích cho các lập trình viên để chuẩn đốn lỗi tiến trình bị
treo.
UAC virtualization: Kích hoạt hoặc tát User Account Control
virtualization (Ảo hóa kiểm sốt người dùng) cho một tiến trình. Tính
năng này sửa các ứng dụng yêu cầu quyền truy cập của quản trị viên
bằng cách ảo hóa quyền truy cập của họ vào tệp hệ thống, chuyển
22


hướng tệp của họ và quyền truy cập vào các thư mục khác. Nó chủ
yếu được sử dụng bởi các chương trình cũ, ví dụ, các chương trình
thời Windows XP, không được viết cho các phiên bản Windows hiện
đại. Đây là một công cụ gỡ lỗi cho các nhà phát triển và bạn khơng
cần phải thay đổi nó.

3.3.7.

Tab Services

Thẻ quản lý các dịch vụ chạy kèm với windows 11 để giúp máy hoạt động
ổn định. Nếu như không cần thiết hoặc khơng am hiểu nhiều về các Services của
windows thì khơng nên thay đổi gì nhiều ở đó. Vì nếu khơng cẩn thận có thể sẽ
gây ra những vấn đề trong quá trình sử dụng windows sau này.
Ảnh
Tab

3.8:

Services trong Task Manager


3.4.

Khởi tạo tiến trình và chạy tiến trình mới

Để khởi tạo một tiến trình mới bằng Task Manager thì kích chuột
vào File chọn Run new task sau đó nhập đường dẫn tới chương trình cần
chạy. Có 2 cách để nhập đường dẫn:



Ta nhập trực tiếp tên chương trình cần chạy rồi bấm Ok.
Chọn Browse trỏ đường dẫn đến ứng dụng cần chạy rồi Ok.

23


Ảnh 3.9: Khởi tạo và chạy tiến trình mới

Một tiến trình được khởi tạo khi:



Tự động bởi hệ thống: Hệ thống khởi tạo hay các ứng dụng và tiến trình
nền.
Bởi tiến trình khác:
o Hệ thống gọi tới để để khởi tạo một tiến trình.
o Tiến trình cần một số tính toán.
o Người dùng yêu cầu (bằng lệnh command hoặc tương tác với icon).

KẾT LUẬN

Mặc dù khoảng thời gian nghiên cứu ngắn nhưng qua sự nỗ lực của
các thành viên trong nhóm, dưới sự chỉ dẫn của thầy Ths.Nguyễn Tuấn Tú
chúng em đã hoàn thành được bản báo cáo này.
Sau quá trình tìm hiểu bọn em nhận xét như sau: Tiến trình là chương
trình trong giai đoạn thực thi và trải qua rất nhiều trạng thái như tạo mới,
sẵn sàng, thực thi, phong tỏa, kết thúc. Hệ điều hành quản lý các tiến trình
để sử dụng tài nguyên hệ thống CPU một cách hợp lý bằng các chiến lược
điều phối để tránh xảy ra xung đột, bế tắc. Từ đó các tiến trình trong hệ
thống có thể chia sẻ thơng tin, tăng tốc độ tính tốn, cơ lặp các thành phần.
24


Nội dung báo cáo được tham khảo từ nhiều nguồn và sự hướng dẫn từ
giảng viên, xong không tránh khỏi sự thiếu sót. Rất mong nhận được nhận
xét từ các thầy cơ.

TÀI LIỆU THAM KHẢO
1. Nguyễn Thanh Hải, Giáo trình Nguyên lý Hệ điều hành – Đại học

công nghiệp Hà Nội.
2. PGS.TS Từ Minh Phương, Giáo trình Hệ điều hành - NXB thông tin

và truyền thông.
3. Hồ Đắc Phương, Giáo trình Nguyên lý Hệ điều hành – NXB Giáo

Dục.
4. />
%20trinh/05_IT101_Bai%203_v1.0010110225.pdf
5. />
chuc-nang-trong-task-manager/

6. a/p/tien-trinh-trong-he-dieu-hanh-phan-3-

3Q75wg6Q5Wb

25


×