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

Nghiên cứu tìm hiểu về quản lý tiến trình trong hệ điều hành 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 (1.75 MB, 28 trang )

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

----------

BÀI TIỂU LUẬ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ệ điều hành Windows
Giáo viên hướng dẫn: Ths. Nguyễn Thanh Hải
Lớp: Đại học HTTT1-K8
Nhóm số: 1

Hà Nội, 2015


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

BÀI TIỂU LUẬ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ệ điều hành Windows
Giáo viên hướng dẫn: Ths. Nguyễn Thanh Hải
Lớp: Đại học HTTT1-K8
Nhóm thực hiện:
1. Lê Tuấn Anh
2. Nguyễn Văn Lành
3. Nguyễn Thị Hiền - 053
4. Nguyễn Thị Hiền - 054
5. Nguyễn Huy Hoàng



Hà Nội, 2015


MỤC LỤC
LỜI NÓI ĐẦU ..................................................................................................................1
CHƯƠNG 1: KHÁI NIỆM TIẾN TRÌNH VÀ CÁC VẤN ĐỀ LIÊN QUAN .....................2
1. Tiến trình .................................................................................................................2
1.1. Khái niệm .........................................................................................................2
1.2. Các loại tiến trình ............................................................................................2
1.3. Quá trình tạo một tiến trình .............................................................................2
1.4. Các trạng thái của tiến trình ............................................................................3
1.5. Liên lạc giữa các tiến trình ..............................................................................4
2. Lập lịch tiến trình ....................................................................................................6
2.1. Các phương pháp lập lịch ................................................................................6
2.2. Các kỹ thuật lập lịch ........................................................................................9
3. Luồng .....................................................................................................................11
3.1. Khái niệm: ......................................................................................................11
3.2. Sự cơ động......................................................................................................11
4. Tài nguyên “Găng” ...............................................................................................13
4.1. Khái niệm .......................................................................................................13
4.2. Cách xử lý tài nguyên găng............................................................................13
CHƯƠNG 2: QUẢN LÝ TIẾN TRÌNH VỚI TASK MANAGER( WINDOWS 8) ...........14
1. Giới thiệu chung ....................................................................................................14
2. Chức năng của các tap trong Task Manager ........................................................15
2.1. Tab Processes( tab tiến trình) ........................................................................15
2.2. Tab Performance( Tab hiệu suất) ..................................................................18
2.3. Tab App History .............................................................................................20
2.4. Tab Startup( Tab Khởi động) .........................................................................21
2.5. Tab Users( Tab người dùng) ..........................................................................22

2.6. Tab Details( Tab chi tiết) ...............................................................................23
2.7. Tab Services ...................................................................................................24
TÀI LIỆU THAM KHẢO ...............................................................................................25


LỜI NÓI ĐẦU
Tất cả các hệ điều hành đa chương, từ các hệ điều hành đơn người sử dụng đến các
hệ điều hành có thể hỗ trợ đến hàng ngàn người sử dụng, đều phải xây dụng dựa trên
khái niệm tiến trình. Vì thế, một yêu cầu quan trọng trong thiết kế hệ điều hành là thành
phần quản lý tiến trình của hệ điều hành phải đáp ứng tất cả những gì liên quan đến tiến
trình:


Hệ điều hành phải cho phép thực hiện nhiều tiến trình đồng thời để khai thác
tối đa thời gian xử lý của processor nhưng cũng cung cấp được thời gian hồi
đáp hợp lý.



Hệ điều hành phải cấp phát tài nguyên để tiến trình hoạt động một cách hiệu
quả với một chính sách hợp lý nhưng không xảy ra tình trạng tắc nghẽn trong
hệ thống.



Hệ điều hành phải có nhiệm vụ tạo ra tiến trình, điều khiển sự hoạt động của
tiến trình và kết thúc tiến trình.
Mỗi hệ điều hành có những đặc trưng riêng trong sử dụng thuật toán cũng như xây
dựng phần mềm quản lý tiến trình. Qua đề tài này, nhóm chúng em sẽ tập trung đề cập đến
kiến thức cơ bản về quản lý tiến trình trong Hệ điều hành Windows. Với lượng kiến thức

không quá lớn cùng với hình ảnh minh họa cụ thể, sinh động, nhóm chúng em sẽ mang đến
cho độc giả cái nhìn khái quát nhất về quản lý tiến trình trong Hệ điều hành Windows mà
cụ thể hơn là trình quản lý Task Manager.
Bài tiểu luận gồm 2 chương chính:


Chương 1: Khái niệm tiến trình và các vấn đề liên quan: Giúp độc giả có kiến
thức cơ bản nhất, tổng quát nhất về tiến trình, quá trình tạo ra 1 tiến trình, các
kỹ thuật lập lịch tiến trình và 1 số khái niệm cơ bản liên quan.



Chương 2: Quản lý tiến trình với Task Manager( Windows 8): Giới thiệu chi
tiết các tab, cách sử dụng trong Task Manager và từ đó hiểu được cách mà
Windows quản lý tiến trình các tiến trình của nó.
Sau cùng nhóm chúng em xin gửi lời cảm ơn trân thành Thầy Nguyễn Thanh Hải
đã giúp chúng em rất nhiều trong việc hoàn thiện nội dung đề tài này. Bài tiểu luận do
nhóm thực hiện sẽ khó tránh khỏi những sai thiếu sót, nhóm chúng em rất mong muốn
nhận được những đóng góp ý kiến của bạn đọc và quý thầy cô để bài tiểu luận được
hoàn thiện và chính xác hơn.
Trân trọng cảm ơn !

Nhóm 1

1


CHƯƠNG 1: KHÁI NIỆM TIẾN TRÌNH VÀ
CÁC VẤN ĐỀ LIÊN QUAN
1.


Tiến trình

1.1.

Khái niệm

- Tiến trình là một bộ phận của một chương trình đang trong quá trình thực
hiện,đơn vị thực hiện tiến trình là processer.
-

Một tiến trình thường bao gồm các thành phần sau :
 Các lệnh, tức là các chỉ thị cho CPU thực hiện.
 Phần dữ liệu chứa các biến toàn cục.
 Ngăn xếp (stack) tiến trình: chứa các dữ liệu tạm thời, ví dụ khi gọi một hàm,
các tham số cần thiết để khôi phục lại trạng thái trước khi gọi hàm sẽ được
lưu vào ngăn xếp.

1.2.

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

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.3.

Quá trình tạo một tiến trình

Một tiến trình Windows được tạo khi mà ứng dụng gọi hàm tạo tiến trình, như là
hàm Create Process, Create Process As User, Create Process With Token Who
hoặc Create Process With LogonW. Để tạo một tiến trình thì cần những thông tin trong
thư viện client-server Kernel32.dll, trình thực thi của Windows và tiến trình hệ thống
con của Windows.
Để tạo một tiến trình với hàm API CreateProcess thì phải qua 6 bước cơ bản sau:
 Mở tệp tin thực thi (.exe)
 Tạo đối tượng thực thi tiến trình
 Tạo luồng khởi tạo và stack, ngữ cảnh của nó.

2


 Thông báo cho hệ thống con của Windows về tiến trình mới được tạo.
 Bắt đầu thực thi luồng khởi tạo
 Trong ngữ cảnh của luồng và tiến trình mới, hoàn thành việc khởi tạo của
không gian địa chỉ(mục đích để nạp những thư viện liên kết động DLL)
và bắt đầu thực thi chương trình.
Trước khi gọi image, hàm CreateProcess thực hiện những bước sau:
 Trong hàm CreateProcess,mỗi thứ tự ưu tiên cho các tiến trình mới là một bít độc lập trong cờ CreationFlags, do đó có thể tạo một tiến trình có nhiều mức ưu tiên, Windows sẽ xem xét và chọn thứ tự ưu tiên từ thấp
đến cao để gán cho tiến trình mới tạo.
 Nếu không có một thứ tự ưu tiên nào thì mặc định sẽ được đặt là Nornal.

 Nếu ứng dụng có mức ưu tiên là Real-time và tiến trình gọi không có khả
năng Nâng quyền ưu tiên, thì tiến trình mới tạo ra sẽ được gán mức ưu
tiên là mức Cao.
 Tất cả các tiến trình tạo ra đều được gắn với 1 desktop nào đó.

1.4.

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: 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: 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: 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 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: 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 quá 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).

3


-

Trạng thái kết thúc: 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. Mô tả chuyển trạng thái của tiến trình.

1.5.

Liên lạc giữa các tiến trình

1.5.1. Nhu cầu liên lạc giữa các tiến trình
Trong môi trường đa chương, một tiến trình không đơn độc trong hệ thống , mà
có thể ảnh hưởng đến các tiến trình khác, hoặc bị các tiến trình khác tác động. Nói cách
khác, các tiến trình là những thực thể độc lập , nhưng chúng vẫn có nhu cầu liên lạc với
nhau để:
 Chia sẻ thông tin: nhiều tiến trình có thể cùng quan tâm đến những dữ liệu
nào đó, do vậy hệ điều hành cần cung cấp một môi trường cho phép sự truy
cập đồng thời đến các dữ liệu chung.

4



 Hợp tác hoàn thành tác vụ: đôi khi để đạt được một sự xử lý nhanh chóng, người ta
phân chia một tác vụ thành các công việc nhỏ có thể tiến hành song song. Thường thì
các công việc nhỏ này cần hợp tác với nhau để cùng hoàn thành tác vụ ban đầu, ví dụ
dữ liệu kết xuất của tiến trình này lại là dữ liệu nhập cho tiến trình khác …Trong các
trường hợp đó, hệ điều hành cần cung cấp cơ chế để các tiến trình có thể trao đổi thông
tin với nhau.

Hình 2. Mô tả tiến trình cha con

1.5.2. Các vấn đề nảy sinh trong việc liên lạc giữa các tiến trình
Do mỗi tiến trình sỡ hữu một không gian địa chỉ riêng biệt, nên các tiến trình
không thể liên lạc trực tiếp dễ dàng mà phải nhờ vào các cơ chế do hệ điều hành cung
cấp. Khi cung cấp cơ chế liên lạc cho các tiến trình, hệ điều hành thường phải tìm giải
pháp cho các vấn đề chính yếu sau :
 Liên kết tường minh hay tiềm ẩn (explicit naming/implicit naming) : tiến trình
có cần phải biết tiến trình nào đang trao đổi hay chia sẻ thông tin với nó ? Mối
liên kết được gọi là tường minh khi được thiết lập rõ ràng , trực tiếp giữa các
tiến trình, và là tiềm ẩn khi các tiến trình liên lạc với nhau thông qua một qui
ước ngầm nào đó.
 Liên lạc theo chế độ đồng bộ hay không đồng bộ (blocking / non-blocking):
khi một tiến trình trao đổi thông tin với một tiến trình khác, các tiến trình có

5


cần phải đợi cho thao tác liên lạc hoàn tất rồi mới tiếp tục các xử lý khác ?
Các tiến trình liên lạc theo cơ chế đồng bộ sẽ chờ nhau hoàn tất việc liên lạc,
còn các tiến trình liên lạc theo cơ chế nonblocking thì không.

 Liên lạc giữa các tiến trình trong hệ thống tập trung và hệ thống phân tán: cơ
chế liên lạc giữa các tiến trình trong cùng một máy tính có sự khác biệt với
việc liên lạc giữa các tiến trình giữa những máy tính khác nhau?
 Hầu hết các hệ điều hành đưa ra nhiều cơ chế liên lạc khác nhau, mỗi cơ chế
có những đặc tính riêng, và thích hợp trong một hoàn cảnh chuyên biệt.

2.

Lập lịch tiến trình

2.1.

Các phương pháp lập lịch

 Lập lịch có chu kỳ
Có rất nhiều tác vụ mà công việc của nó chỉ là thức dậy theo chu kỳ, làm một vài
công việc nào đó và quay trở lại ngủ tiếp. Có một vài phương pháp để thực hiện các tác
vụ kiểu này như trên hình 8.2. Trong tất cả các hệ điều hành, chúng ta đều có thể tìm
thấy một lệnh gọi là hàm trễ Delay(), hoặc là một vài hàm có chức năng tương tự. Hàm
này làm cho tác vụ bị khoá trong một thời gian xác định cho trước, thông thường thời
gian này được biểu diễn bằng xung đồng hồ (clock tick). Hình 8.2a cho ta thấy việc thực
hiện một tác vụ khi ta sử dụng lệnh Delay() đối với tác vụ có tính chu kỳ đó. Trong
trường hợp này, khoảng thời gian trễ là 3 clock tick. Hoạt động của hệ thống phụ thuộc
vào thời gian thực thi của tác vụ. Nếu thời gian thực hiện nhỏ hơn 1 tick thì tác vụ sẽ
thức dậy sau mỗi 3 tick như mong muốn. Tuy nhiên, nếu tác vụ hoạt động quá 1 tick,
khi đó, sau khi tác vụ gọi lệnh Delay(), nó vẫn sẽ bị khoá trong 3 clock tick. Thế nhưng,
trong ví dụ này, tác vụ thực tế là sẽ thức dậy sau mỗi 4 xung clock tick. Đó không phải
là điều chúng ta mong muốn.

6



Hình 3. Các tác vụ có tính chu kì

 Lập lịch không theo chu kỳ
Một số tác vụ phải phản ứng lại các sự kiện xảy ra ngẫu nhiên tại các thời điểm
khác nhau. Một sự kiện có thể là việc một gói dữ liệu từ trên mạng được gửi đến nơi,
việc một cái công tắc đóng lại để chỉ ra là bể nước đã đầy hoặc cũng có thể là sự kết
thúc việc convert một tín hiệu tương tự sang số của bộ ADC và đang cần được đọc.
Thông thường, các sự kiện không đồng bộ này được giao tiếp với máy tính thông qua
các ngắt. Chương trình con dịch vụ ngắt phải có cách nào đó để kết nối sự xuất hiện của
ngắt với tác vụ chịu trách nhiệm xử lý sự kiện.
 Lập lịch theo kiểu chiếm quyền thực thi và lập lịch không có chiếm quyền thực
thi
Có 2 phương thức cơ bản cho việc lập lịch một tác vụ: chiếm quyền thực
thi và không chiếm quyền thực thi. Xét 2 tác vụ: tác vụ 1 có mức ưu tiên thấp hơn đang
thực hiện và tác vụ 2 có mức ưu tiên cao hơn đang bị khoá để chờ một sự kiện xảy ra,
sự kiện này được thông báo bởi một tín hiệu ngắt. Hình 8.3a cho thấy những gì xảy ra
trong hệ thống không có tính chiếm quyền ưu tiên. Chương trình con dịch vụ ngắt ISR
làm cho tác vụ 2 với mức ưu tiên cao hơn chuyển từ trạng thái Khoá sang trạng thái Sẵn
sàng. Tuy nhiên, đến khi ISR được thực hiện xong thì tác vụ 1 với mức ưu tiên thấp hơn
vẫn sẽ được tiếp tục thực thi tại điểm nó bị ngắt. Sau đó, khi tác vụ 1 bị khoá để chờ sự
kiện thì tác vụ 2 mới được chuyển sang trạng thái thực thi.

7


Hình 4. Lập lịch: Có và không có chiếm quyền thực thi

Hình : Lập lịch Non-Preemptive và Preemptive.


8


Bộ lập lịch ra hoạt động khi…
1. Khi tiến trình chuyển từ Running sang Waiting (Chờ I/O. chờ tiến trình con)
2. Khi tiến trình chuyển từ Running sang Ready (do ngắt xảy ra)
3. Khi tiến trình chuyển từ Waiting sang Ready (khi kết thúc I/O)
4. Khi tiến trình kết thúc công việc
-

-

-

Sơ đồ điều phối chỉ tiến hành trong tình huống 1 và 4 được gọi là điều phối
không tiếm quyền (Non-Preemptive): Tiến trình giữ CPU cho đến khi kết thúc
bình thường hoặc khi chuyển sang trạng thái Waiting . Dùng khi máy không có
Timer/Counter.(Quá trình running nếu bị ngắt sẽ tiếp tục running sau đó).
Sơ đồ điều phối tiến hành trong cả 4 tình huống được gọi là điều phối có tiếm
quyền (Preemptive).
Non-Preemptive Scheduling: Có nghĩa là khi tiến trình P1 có thời điểm đến
trước P2 thì tiến trình P1 được thực hiện hết khoảng thời gian thực hiện, sau đó
mới thực hiện tiến trình P2
Preemptive Scheduling: Có nghĩa là khi có 3 tiến trình P1, P2, P3 có thời điểm
đến theo thứ tự đó thì tiến trình P1 sẽ được thực hiện với một khoảng thời gian
cho phép sau đó bị tiến trình P2 hay P3 tiếm quyền. Còn quá trình điều phối kế
tiếp như thế nào là tuỳ thuộc vào thuật toán điều phối và độ ưu tiên của tiến
trình.


Sử dụng Preemptive Scheduling hiệu quả hơn do Non-Preemptive Scheduling tốn thời
gian tổng của hệ thống .

2.2.

Các kỹ thuật lập lịch

 FCFS
Trong cơ chế lập lịch đến trước được phụ vụ trước thì các quá tình được xử lý
theo thứ tự mà nó xuất hiện yêu cầu và cho đến khi hoàn thành. Cơ chế lập lịch này
thuộc loại không ngắt được và có ưu điểm là dễ dàng thực thi. Tuy nhiên, nó không phù
hợp cho các hệ thống mà hỗ trợ nhiều người sử dụng vì có một sự biến đổi lớn về thời
gian trung bình mà một quá trình hay tác vụ phải chờ đợi để được xử lý. Hơn nữa do
việc xử lý không ngắt được nên có hiện tượng chiếm hữu độc quyền bộ xử lý trong thời
gian dài và có thể gây ra sự trễ bất thường trong quá trình thực hiện của các tác vụ phải
chờ đợi khác.
 Shortest Job First - SJF
Trong cơ chế lập lịch này tác vụ có thời gian thực thi ngắn nhất sẽ có quyền ưu
tiên cao nhất và sẽ được phục vụ trước. Vấn đề chính gặp phải trong cơ chế lập lịch này

9


là không biết trước được thời gian thực thi của các tác vụ tham gia trong chương trình
và thông thường phải áp dụng cơ chế tiên đoán và đánh giá dựa vào kinh nghiệm về các
tác vụ thực thi trong hệ thống. Điều này chắc chắn rất khó để luôn đảm bảo được độ
chính xác. Cơ chế lập lịch này có thể áp dụng cho cả loại ngắt được và không ngắt được.
 Rate monotonic (RM):
Phương pháp lập lịch RM có lẽ hiện này là thuật toán được biết tới nhiều nhất áp
dụng cho các tác vụ hay quá trình độc lập. Phương pháp này dựa trên một số giả thiết

sau:
(1) Tất cả các tác vụ tham gia hệ thống phải có deadline kiểu chu kỳ
(2) Tất cả các tác vụ độc lập với nhau
(3) Thời gian thực hiện của các tác vụ biết trước và không đổi
(4) Thời gian chuyển đổi ngữ cảnh thực hiện là rất nhỏ và có thể bỏ qua
Thuật toán RM được thực thi theo nguyên lý gán mức ưu tiên cho các tác vụ dựa
trên chu kỳ của chúng. Tác vụ nào có chu kỳ nhỏ thì sẽ có được gán mức ưu tiên cao.
Theo nguyên lý này với các tác vụ chu kỳ không thay đổi thì RM sẽ là phương pháp lập
lịch cho phép ngắt và mức ưu tiên cố định. Tuy nhiên RM hỗ trợ yêu cầu hệ thống không
tốt.
 Earliest deadline first (EDF)
Như đúng tên gọi của phương pháp, thuật toán lập lich theo phương pháp này sử
dụng deadline của tác vụ hay như điều kiện ưu tiên để xử lý điều phối hoạt động. Tác
vụ có deadline gần nhất sẽ có mức ưu tiên cao nhất và các tác vụ có deadline xa nhất sẽ
nhận mức ưu tiên thấp nhất. Ưu điểm nổi bật của phương pháp này là giới hạn có thể
lập lịch đáp ứng được 100% cho tất cả các tập tác vụ. Hơn nữa mức ưu tiên gán cho mỗi
tác vụ trong quá trình hoạt động là động vì vậy chu kỳ của tác vụ có thể thay đổi bất kỳ
lúc nào theo thời gian. EDF có thể được áp dụng cho các tập tác vụ chu kỳ và cũng có
thể mở rộng để đáp ứng cho các trường hợp các deadline thay đổi khác nhau theo chu
kỳ.
Vấn đề chính của thuật toán lập lich EDF là không thể đảm bảo được tác vụ nào
trong hệ thống có thể không được thực thi trong tình huống quá độ hệ thống bị quá tải.
Trong nhiều trường hợp mặc dù mức độ sử dụng trung bình nhỏ hơn 100% những vẫn
có thể trong một tình huống nào đó vẫn vượt qua khả năng đáp ứng của hệ thống tức là
sẽ có tác vụ không được đảm bảo thực thi đúng. Trong những trường hợp như vậy cần
phải điều khiển để biết tác vụ nào bị lỗi không thực hiện thành công hoặc tác vụ nào
được thực hiện thành công trong quá trình quá độ.
 Minimum Laxity first (MLF)

10



Cơ chế lập lịch này sẽ ưu tiên tác vụ nào còn ít thời gian còn lại để thực hiện nhất
trước khi nó phải kết thúc để đảm bảo yêu cầu thực thi đúng. Đây được xem là cơ chế
lập lịch gán quyền ưu tiên động và dễ đạt được sự tối ưu về hiệu suất thực hiện và sự
công bằng trong hệ thống.
 Round Robin
Đây là một cơ chế lập lịch phân bổ đều đặn, ngắt được và đơn giản. Mỗi một tác
vụ được xử lý/phục vụ trong một khoảng thời gian nhất định và lặp lại theo một chu
trình xuyên suốt toàn bộ các tác vụ tham gia trong hệ thống. Khoảng thời gian phục vụ
cho mỗi tác vụ trong quá trình là một sự thoả hiệp giữa thời gian thực hiện của các tác
vụ và thời gian thực hiện một chu trình. Có thể chọn khoảng thời gian đó rất nhỏ và đôi
lúc chúng ta không nhận được ra rằng đang có sự phân bổ thực hiện trong hệ thống. Tuy
nhiên nếu thời gian đó quá nhỏ có thể làm mất tính hiệu quả thực hiện toàn hệ thống vì
cần nhiều thời gian trong việc chuyển đổi ngữ cảnh cho mỗi tác vụ sau mỗi chu trình
thực hiện.

3.

Luồng

3.1.

Khái niệm:
- Mỗi đơn vị thực hiện của tiến trình, tức là một chuỗi lệnh được cấp phát CPU để
thực hiện độc lập được gọi là một luồng thực hiện. Hệ điều hành hiện nay thường
hỗ trợ đa luồng.
- Đa luồng là cho phép nhiều chuỗi lệnh được thực hiện cùng lúc trong phạm vi
một tiến trình
- Có thể tạo ra và quản lý luồng ở hai mức: mức người dùng và mức nhân. Luồng

mức người dùng được tạo ra và quản lý không có sự hỗ trợ của hệ điều hành.
Trong khi đó, luồng mức nhân được tạo ra nhờ hệ điều hành và được hệ điều
hành quản lý. Luồng mức nhân còn được gọi là các tiểu trình để nhấn mạnh sự
hỗ trợ trực tiếp của hệ điều hành tương tự như đối với tiến trình.
- Những ưu điểm của mô hình đa luồng:
Tăng hiệu năng và tiết kiệm thời gian
Dễ dàng chia sẻ tài nguyên và thông tin
Tăng tính đáp ứng
Tận dụng được kiến trúc xử lý với nhiều CPU
Thuận lợi cho việc tổ chức chương trình

3.2.

Sự cơ động

Nhiều gói phần mềm chạy trên các máy để bàn PC là đa luồng. Điển hình, một
ứng dụng được cài đặt như một quá trình riêng rẻ với nhiều luồng điều khiển. Một trình
duyệt Web có thể có một luồng hiển thị hình ảnh, văn bản trong khi một luồng khác lấy

11


dữ liệu từ mạng. Một trình soạn thảo văn bản có thể có một luồng hiển thị đồ họa, luồng
thứ hai đọc sự bấm phím trên bàn phím từ người dùng, một luồng thứ ba thực hiện việc
kiểm tra chính tả và từ vựng chạy trong chế độ nền.

Hình 5. Quá trình đơn và đa luồng.
Trong những trường hợp cụ thể một ứng dụng đơn có thể được yêu cầu thực hiện
nhiều tác vụ đơn. Thí dụ, một trình phục vụ web chấp nhận các yêu cầu khách hàng như
trang web, hình ảnh, âm thanh, ..Một trình phục vụ web có thể có nhiều (hàng trăm)

khách hàng truy xuất đồng thời nó. Nếu trình phục vụ web chạy như một quá trình đơn
luồng truyền thống thì nó sẽ có thể chỉ phục vụ một khách hàng tại cùng thời điểm.
Lượng thời gian mà khách hàng phải chờ yêu cầu của nó được phục vụ là rất lớn.
Một giải pháp là có một trình phục vụ chạy như một quá trình đơn chấp nhận các
yêu cầu. Khi trình phục vụ nhận một yêu cầu, nó sẽ tạo một quá trình riêng để phục vụ
yêu cầu đó. Thật vậy, phương pháp tạo ra quá trình này là cách sử dụng thông thường
trước khi luồng trở nên phổ biến. Tạo ra quá trình có ảnh hưởng rất lớn như được trình
bày ở chương trước. Nếu quá trình mới sẽ thực hiện cùng tác vụ như quá trình đã có thì
tại sao lại gánh chịu tất cả chi phí đó? Thường sẽ hiệu quả hơn cho một quá trình chứa
nhiều luồng phục vụ cùng một mục đích. Tiếp cận này sẽ đa luồng quá trình trình phục

12


vụ web. Trình phục vụ sẽ tạo một luồng riêng lắng nghe các yêu cầu người dùng; khi
yêu cầu được thực hiện nó không tạo ra quá trình khác mà sẽ tạo một luồng khác phục
vụ yêu cầu.
Luồng cũng đóng một vai trò quan trọng trong hệ thống lời gọi thủ tục xa (remote
process call-RPC). Như đã trình bày ở chương trước, RPCs cho phép giao tiếp liên quá
trình bằng cách cung cấp cơ chế giao tiếp tương tự như các lời gọi hàm hay thủ tục thông
thường. Điển hình, các trình phục vụ RPCs là đa luồng. Khi một trình phục vụ nhận một
thông điệp, nó phục vụ thông điệp dùng một luồng riêng. Điều này cho phép phục vụ
nhiều yêu cầu đồng hành.

4. Tài nguyên “Găng”
4.1.

Khái niệm

- Những tài nguyên được hệ điều hành chia sẻ cho nhiều tiến trình hoạt động

đồng thời dùng chung mà có nguy cơ dẫn đến sự tranh chấp giữa các tiến trình được gọi
là tài nguyên găng.
- Tài nguyên găng có thể là tài nguyên phần cứng hoặc phần mềm, có thể là tài
nguyên phân chia được hoặc không phân chia được.

4.2.

Cách xử lý tài nguyên găng
-

Bổ sung tài nguyên vật lý.
Tổ chức hệ thống tài nguyên vật lý.
Hai mức truy nhập.
SPOOL.

13


CHƯƠNG 2: QUẢN LÝ TIẾN TRÌNH VỚI
TASK MANAGER( WINDOWS 8)
1. Giới thiệu chung
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. Windows Task Manager được giới thiệu với Windows NT 4.0. Những
phiên bản trước đó của Windows NT thì có ứng dụngTask List, với một vài chức năng
như hiện danh sách các tiến trình, ngắt hoặc tạo một tiến trình mới.


Hình 6. Task Manager trên Windows 8

14


Task Manager có thể gọi bằng một trong bốn cách sau:
 Nháy phải chuột vào taskbar và chọn "Task Manager" (hoặc Start Task
Manager ở Windows 7).
 Dùng tổ hợp phím Ctrl+Shift+Esc.
 Trong Windows NT, Windows 2000, and Windows Vista, dùng tổ hợp
phím Ctrl+Alt+Del để mở hộp thoại Windows Security, sau đó chọn "Task
Manager". Ở Windows XP, nhấn trực tiếp Ctrl+Alt+Del hoặc
Ctrl+Shift+Esc để gọi Task Manager, trừ khi bạn tắt Welcome screen.
 Gọi lệnh "Taskmgr.exe" từ command line, GUI hay là shortcut.

2.

Chức năng của các tabs trong Task Manager

2.1.

Tab Processes( tab tiến trình)

Đây là thẻ quản lý các tiến trình. Gồm các Apps đang chạy, các tiến trình chạy nền và
các tiến trình của Windows. Nếu bạn muốn biết thông tin về một Apps nào đó, click chuột phải
vào Apps đó chọn Expand, ví dụ bạn đang sử dụng Google Chrome nó sẽ cho bạn thấy bạn
đang duyệt trang web nào …

Hình 7. Expand Proccesses


15


Nếu một tiến trình đang bị treo (Not Responding) và bạn không thể tắt nó đi.
Click chuột phải vào tiến trình đó chọn End Task.

Hình 8. End Task Proccesses
Ngoài ra, tab này còn hiển thị cho bạn thấy rằng các tiến trình đang chạy đó tốn
hết bao nhiêu tài nguyên máy (CPU, RAM, Disk, Network). Vì vậy nếu thấy máy tính
chậm chạp bất thường bạn 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.

Hình 9. Index Proccesses

16


Background proccess: là các proccess chạy dưới tầng nền giống như service, hầu
hết các proccess này user có quyền End task

Hình 10. Background Proccesses
Windows Proccesses: Là các proccesses nền tảng của hệ thống, 1 số proccess
user không có quyền. Tắt các proccesses này có thể ảnh hưởng tới hoạt động của hệ
thống và các proccesses khác

Hình 11. Windows Proccesses

17



2.2.

Tab Performance( Tab hiệu suất)

Đây là thẻ hiệu suất hiển thị các thông tin tổng quan nhất về hiệu suất hoạt động
của máy tính.

Hình 12. Tab Performance
Dưới đây là cái nhìn chi tiết về các tab hiệu suất:
+ CPU
 Biểu đồ sử dụng CPU
 Tổng số xử lý và hiệu suất các tiến trình đang chạy.


Nếu CPU đạt 100% thì xảy ra hiện tượng bế tắc.

Hình 13. CPU

18


+ Memory
 Sử dụng đồ thị bộ nhớ
 Tổng số lượng bộ nhớ sử dụng và có sẵn
 Dung lượng bộ nhớ cache
 Tốc độ bộ nhớ

Hình 14. Memory
+ Disk

 Biểu đồ sử dụng đĩa
 Tốc độ đọc / ghi
 Thời gian hoạt động và thời gian phản ứng trung bình
 Dung lượng đĩa (size)

Hình 15. Disk

19


+ Ethernet
 Tốc độ tải lên và tải về
 Thông tin kết nối (tên adapter, tên miền, kiểu kết nối, địa chỉ IP)
 Hình ảnh này cho thấy Ethernet tab. Máy có thêm kết nối (ví dụ như
WiFi, Bluetooth) sẽ có các tab bổ sung.

Hình 16. Ethernet

2.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 dữ liệu gói).
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 đó.

20


Hình 17. App History

2.4.

Tab Startup( Tab Khởi động)

Thẻ này dùng để quản lý các ứng dụng sẽ khởi động cùng Windows 8. Ở các
phiên bản Windows trước thì việc quản lý các ứng dụng tự khởi động trong thư mục
Startup hoặc trong trang Msconfig. Nhưng với Windows 8, nó đã được tích hợp trong
Task Manager.
 Disable: ngăn nó khởi chạy cùng Windows 8 ở những lần khởi động sau.
 Open file location: mở thư mục chứa phần mềm đó.
 Search online: tìm kiếm thông tin về nó trực tuyến.
 Properties: hiển thị thông tin ứng dụng.
Dưới đây là cái nhìn chi tiết về các tab Startup:
 Name: Tên tiến trình khởi động cùng hệ thống
 Pulisher: Nhà sản xuất ứng dụng
 Status: Trạng thái của ứng dụng( enable (cho phép) hoặc disable( vô hiệu
hóa))
 Startup impact: Tác động của tiến trình đến tốc độ khởi động của các ứng
dụng và được phân loại như sau:
- High: sử dụng hơn 1 s (1000 ms) của thời gian CPU

- Medium: sử dụng 300 - 1000 ms của thời gian CPU
- Low: sử dụng ít hơn 300 ms của thời gian CPU
- Not measured: ứng dụng không chạy lúc khởi động

21


Hình 18. Startup

2.5.

Tab Users( Tab người dùng)
Hiển thị cho chúng ta có bao nhiêu tài khoản đang truy cập máy, mỗi tài khoản

đó đang chạy những ứng dụng và tiến trình nào.
Tab user chứa các thẻ CPU (phần trăm CPU mà mỗi user sử dụng), Memory (bộ
nhớ đang sử dụng của mỗi user), Disk (phần trăm bộ nhớ và tốc độ đọc/ghi của ổ đĩa
cho mỗi user), Network (tốc độ sử dụng dữ liệu mạng).

Hình 19. Users
Ở trên ta có thể thấy có 2 user đang truy cập. Trong đó user “joanna” đã bị ngắt
kết nối để chờ người dùng đăng nhập lại và tiếp tục công việc của họ.

22


×