MỤC LỤC CHƯƠNG 1: TỔNG QUAN VỀ TIẾN TRÌNH 4 I – Giới thiệu về tiến trình (Process) 4 II Tiểu trình (Thread) 5 III Mục đích quản lý tiến trình 5 CHƯƠNG 2: CÁC TRẠNG THÁI CỦA TIẾN TRÌNH 6 CHƯƠNG 3: ĐIỀU PHỐI TIẾN TRÌNH 8 I. Mục tiêu của điều phối tiến trình 8 II. Các thuật toán điều phối tiến trình 8 1. First Come First Served (FCFS) 8 2. Shortest Job First (SJF) 9 CHƯƠNG 4: QUẢN LÝ TIẾN TRÌNH VỚI TASK MANAGER (WINDOWS 10) 10 I. Giới thiệu chung 10 II. Chức năng của các Tab trong Task Manager 11 1. Tab Proceese(tab tiến trình) 11 2. Tab Performance (Tab hiệu suất) 12 3. Tab Users( Tab người dùng) 13 4. Tab Details(Tab chi tiết) 14 5. Tab Services 15 6. Khởi tạo tiến trình và chạy tiến trình mới 16 7. Chuỗi chờ đợi tiến trình 17 KẾT LUẬN 17
Trang 1TRƯỜ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: 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 : Th.s Nguyễn Thanh Hải
Sinh viên thực hiện :
Bùi Tuấn Anh Lương Mỹ Hạnh Nguyên Văn Thứ
Lê Văn Thưởng Nguyễn Thị Thủy
HÀ NỘI - 2015
Trang 2MỤC LỤC
MỤC LỤC 2
CHƯƠNG 1: TỔNG QUAN VỀ TIẾN TRÌNH 4
I – Giới thiệu về tiến trình (Process) 4
II- Tiểu trình (Thread) 5
III- Mục đích quản lý tiến trình 5
CHƯƠNG 2: CÁC TRẠNG THÁI CỦA TIẾN TRÌNH 6
CHƯƠNG 3: ĐIỀU PHỐI TIẾN TRÌNH 8
I Mục tiêu của điều phối tiến trình 8
II Các thuật toán điều phối tiến trình 8
1 First Come First Served (FCFS) 8
2 Shortest Job First (SJF) 9
CHƯƠNG 4: QUẢN LÝ TIẾN TRÌNH VỚI TASK MANAGER (WINDOWS 10)10 I Giới thiệu chung 10
II Chức năng của các Tab trong Task Manager 11
1 Tab Proceese(tab tiến trình) 11
2 Tab Performance (Tab hiệu suất) 12
3 Tab Users( Tab người dùng) 13
4 Tab Details(Tab chi tiết) 14
5 Tab Services 15
6 Khởi tạo tiến trình và chạy tiến trình mới 16
7 Chuỗi chờ đợi tiến trình 17
KẾT LUẬN 17
Trang 3
LỜI NÓI ĐẦU
Ngày nay cùng với sự phát triển vượt bậc của các nghành khoa học
kĩ thuật thì nghành Công Nghệ Thông Tin (CNTT) đã và đang là nghànhphát triển mạnh nhất Nó đã đạt được nhiều thành tựu to lớn về khoahọc và kĩ thuật để ứng dụng vào đời sống của con người ngày càngcao, cùng với sự cải tiến nâng cấp linh kiện thiết bị Thì các chươngtrình phần mềm ứng dụng ra đời ngày nay càng tối ưu và ngày càngtrợ giúp con người chúng ta giảm bớt gánh nặng công việc rất nhiều,
sự phát triển phần mềm ứng dụng càng có tính chất quyết định đến sựphát triển của nghành khoa học CNTT đang còn non trẻ ở nước ta
Trang 4CHƯƠNG 1: TỔNG QUAN VỀ TIẾN TRÌNH
I – Giới thiệu về tiến trình (Process)
- Tiến trình là một chương trình đang được thực thi
- Một tiến trình cần sử dụng các tài nguyên: CPU, bộ nhớ, tập tin,thiết bị nhập xuất để hoàn tất công việc của nó
- Khi chương trình được nạp vào RAM cà CPU bắt đầu thi hành chương trình ở điểm nhập thì chương trình trở thành Process, CPU thực thi hết lệnh này đến lệnh khác từ trên xuống hay theo
sự điều khiển của lệnh đang thực thi
Trang 5Hình 1.1: Process trong Task Manager và Process Explorer.
II- Tiểu trình (Thread)
- Tiểu trình là một dòng xử lý trong một tiến trình
- Mỗi tiến trình luôn có một tiểu trình chính (dòng xử lý cho hàm main())
- Ngoài tiểu trình chính, tiến trình còn có thể có nhiều tiểu trình con khác
- Các tiểu trình của một tiến trình:
Trang 6+ Chia sẻ không gian vùng code và data.
+ Có vùng stack riêng
compiler
linker
Hình 1.2: Mô hình thực thi chương trình
III- Mục đích quản lý tiến trình
a Tăng hiệu xuất sử dụng CPU
- Phần lớn các tiến trình khi thi hành đều trải qua nhiều chu
kỳ xử lý (sử dụng CPU) và chu kỳ nhập xuất (sử dụng các thiết bịnhập xuất) xen kẽ như sau:
CPU IO CPU IO CPU
- Nếu chỉ có 1 tiến trình duy nhất trong hệ thống, thì vào cácchu kỳ IO của tiến trình thì CPU sẽ hoàn toàn nhàn rỗi Ý tưởng tăng cường số lượng tiến trình trong hệ thống là để tận dụng CPU:nếu tiến trình 1 xử lý IO thì có thể sử dụng CPU để thực hiện tiến trình 2:
Tiến trình 1:
Tiến trình 2:
abc.cpp
abc.exeabc.obj
Processor RAM
Trang 7CHƯƠNG 2: CÁC TRẠNG THÁI CỦA TIẾN TRÌNH
Trạng thái của tiến trình tại một thời điểm được xác định bởi hoạt động hiện thời của tiến trình tại thời điểm đó Trong quá trình sống, một tiến trình thay đổi trạng thái do nhiều nguyên nhân như : phải chờ một sự kiện nào đó xảy ra, hay đợi một thao tác nhập/xuất hoàn tất, buộc phải dừng hoạt động do đã hết thời gian xử lý v.v
Tại một thời điểm, một tiến trình có thể nhận một trong các trạngthái sau đây :
- New: tiến trình đang được tạo lập.
- Ready: tiến trình chờ được cấp phát CPU để xử lý.
- Running: các chỉ thị của tiến trình đang được xử lý.
- Waiting: tiến trình chờ được cấp phát một tài nguyên, hay chờ
một
sự kiện xảy ra
- Terminated: tiến trình hoàn tất xử lý.
Hình 2.1: Sơ đồ chuyển trạng thái giữa các tiến trình
CPU IO CPU IO
Trang 8Mô tả:
Tại một thời điểm, chỉ có một tiến trình có thể nhận trạng thái
Running trên một bộ xử lý bất kỳ Trong khi đó, nhiều tiến trình có thể
ở trạng thái Waiting hay Ready.
Tất cả các tiến trình mới tạo lập đều được chuyển sang trạng thái
NEW – trạng thái đầu tiên, sau đó đưa vào hàng đợi, hệ điều hành sẽ lựa chọn một tiến trình thích hợp nhất trong hàng đợi Job Queue
(hàng đợi công việc) để chuyển nó sang trang thái Ready và đưa tiến
trình này vào hàng đợi Ready Queue (hàng đợi sẵn sàng).
Hình 2.2: Sơ đồ hàng đợi
- Những tiến trình đang ở trạng thái sẵn sàng (Ready) được xếp
vào hàng đợi Ready Queue, ở trạng thái này hệ điều hành sẽ lựa chọn
tiến trình thích hợp giao CPU cho nó và chuyển nó sang trạng thái
Runing Tiến trình sau khi giao CPU thì rời khỏi hàng đợi Ready
Queue (tiến trình đó vẫn có thể quay trở lại hàng đợi này nếu nó chưa
thực thi xong)
- Tiến trình được giao CPU nếu đã thực thi hoàn tất thì kết thúc và
chuyển sang trạng thái Terminated (kết thúc) sau đó trả lại CPU cho
hệ thống
- Tiến trình được giao CPU nhưng chưa thực thi xong công việc thì
sẽ bị chuyển từ trạng thái Runing sang trạng thái Ready và quay trở
về cuối hàng đợi Ready Queue để đợi đến lượt giao CPU kế tiếp , tiến
trình chuyển trạng thái xong trả lại CPU cho hệ điều hành
- Tiến trình được giao CPU nhưng chưa hoàn tất công việc của mình vì phải chờ đợi sự xuất hiện của sự kiện hay IO nào đó thì sẽ được
Trang 9hệ điều hành chuyển sang trạng thái Waiting và chuyển nó vào hàng đợi Waiting Queue.
- Những tiến trình ở trạng thái Waiting (nằm trong hàng đợi
Waiting Queue) sau khi sự kiện hay IO mà nó chờ xuất hiện thì lập tức
nó được hệ điều hành chuyển nó sang trạng thái sẵn sàng (Ready) và
đưa nó vào hàng đợi Ready Queue để sẵn sàng cho lần cấp CPU kế
tiếp
CHƯƠNG 3: ĐIỀU PHỐI TIẾN TRÌNH
I Mục tiêu của điều phối tiến trình
- Công bằng sử dụng CPU
- Cân bằng sử dụng các thành phần của hệ thống
- Tận dụng CPU
- Giảm thiểu thời gian chờ
- Cân đối mong muốn của người dùng
II Các thuật toán điều phối tiến trình
1 First Come First Served (FCFS)
- Đây là thuật toán đơn giản nhất Tiến trình nào yêu cầu CPU trước sẽ được phục vụ trước
- Tiêu chí lựa chọn tiến trình: Thứ tự vào hàng đợi Ready Queue.
Trang 10+ Có thể xảy ra tình trạng độc chiếm CPU.
+ Không phù hợp với hệ thống tương tác người dùng
Trang 112 Shortest Job First (SJF)
- Thuật toán cho phép tiến trình có thời gian xử lý nhỏ nhất
sẽ được xử lý trước Nếu có nhiều tiến trình cùng thời gian xử lý thì thực hiện theo thuật toán FCFS
Trang 12CHƯƠNG 4: QUẢN LÝ TIẾN TRÌNH VỚI TASK MANAGER
(WINDOWS 10)
I Giới thiệu chung
Windows Task manager là ứng dụng quản lý tiến trình kèm
theo trong 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 Taskmanager 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 các 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ụng Task 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 4.1: Task Manager trong Windows 10
Trang 14II Chức năng của các Tab trong Task Manager
1 Tab Proceese(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
Hình 4.2: Tab Processes trong Task Manager
Nếu có tiến trình bị treo (Not Responding) và không thể tắt nó đi.Click chuột phải vào tiến trình đó chọn End task
Ngoà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 (CPU, RAM, Disk, Network) 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
Trang 152 Tab Performance (Tab hiệu suất)
Đây là thẻ hiệu suất, hiển thị các thông tin về hiệu suất sử
dụng của CPU, MEMORY, DISK, WIFI, ETHERNET.
Hình 4.3: Tab Performance trong Task Manager
Trang 163 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
Hình 4.4: Tab Users trong Task Manager
Trang 174 Tab Details(Tab chi tiết)
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 Tabnày tương tự với Tab Process của Task Manager trong
windows7
- Name: tên tiến trình
- PID: mỗi tiến trình mang một định danh gọi là Process
ID (PID) PID là một con số lớn hơn 0 và là duy nhất hệ thống sẽ dựa vào các PID này để quản lý các tiến trình
- Status: trạng thái của mỗi tiến trình (Running, not
responding, suspended (bị đình chỉ)…)
- User name: tên người dùng ứng với mỗi tiến trình
(personal, administrator, system, network service…)
- CPU: tình trạng của CPU
- Memory: tình trạng bộ nhớ
- Description: mô tả tên chương trình
Hình 4.5: Tab Details trong Task Manager
Trang 185 Tab Services
Thẻ quản lý các dịch vụ chạy kèm với windows 10 để 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
Hình 4.6: Tab Services trong Task Manager
Trang 196 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 sử dụng Task Manager thì kích
chuột và 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
Hình 4.7: Khởi tạo tiến trình trong Task Manager
Trang 207 Chuỗi chờ đợi tiến trình
- Khi một tiến trình đang thực hiện nhưng cần tài nguyên mà tài nguyên đó lại đang được tiến trình khác sử dụng thì tiến trình này sẽ đợi tiến trình kia thực hiện xong hoặc chờ cho
hệ thống cấp phát lại tài nguyên
Hình 4.8: Analyze wait chain
KẾT LUẬN
Qua việc tìm hiểu về quản lý tiến trình của hệ điều hànhWindows.Chúng em hiểu thêm về việc quản lí tiến trình trong hệđiều hành Windows Trong suốt chu trình sống, tiến trình chuyển đổiqua lại giữa các trạng thái ready, running và blocked
Bộ điều phối của HĐH chịu trách nhiệm áp dụng một giải thuật điều phối thích hợp để chọn tiến trình thích hợp được sử dụng
Trang 21processor và bộ phân phối sẽ chuyển giao processor cho tiến trình này.
Các giải thuật điều phối thông dụng: FIFO, RR, điều phối với độ ưutiên, SJF