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

Bài Tập Lớn Môn Nguyên Lý Hệ Điều Hành

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 (706.08 KB, 19 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: 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

1


MỤC LỤC

2


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ành phát triển mạnh
nhất. Nó đã đạt được nhiều thành tựu to lớn về khoa học và kĩ thuật để ứng
dụng vào đời sống của con người ngày càng cao, cùng với sự cải tiến nâng cấp
linh kiện thiết bị. Thì các chương trình phần mềm ứng dụng ra đời ngày nay
càng tối ưu và ngày càng trợ 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.

3


CHƯƠ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.

Hình 1.1: Process trong Task Manager và Process Explorer.

4


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:
+ Chia sẻ không gian vùng code và data.
+ Có vùng stack riêng.

instructions

compiler

abc.cpp

linker
abc.obj

abc.exe

Process
[code]
[data]
[stack]

Disk

5

RAM

Processor


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ác chu 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:
CPU

IO

CPU

IO

CPU

CPU

IO


Tiến trình 2:
CPU

IO

b. Tăng tốc độ xử lý
Một số bài toán có bản chất xử lý song song nếu được xây dựng thành
nhiều module hoạt động đồng thời thì sẽ tiết kiệm được thời gian xử lý.
Ví dụ: xét bài toán tính giá trị biểu thức KQ= a*b+c*d. Nếu tiến trình tính
đồng thời (a*b) và (c*d) thì thời gian xử lý sẽ ngắn hơn là thực hiện tuần tự.
CHƯƠ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,
6


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ạng thá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

Mô 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.

7


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 hệ đ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 .

8


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.

Hình 3.1: Minh họa FCFS
- Ưu điểm:
+ Đơn giản, dễ cài đặt.
- Nhược điểm:
+ Tiến trình có thời gian xử lý ngắn phải đợi tiến trình có thời gian
xử lý dài.
+ 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.

9



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

Hình 3.2: Minh họa SJF.
- Ưu điểm:
+ Tối ưu thời gian chờ.
- Nhược điểm:
+ Cần phải ước lượng thời gian cần CPU tiếp theo của các
process.

10


CHƯƠ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. 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 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

11


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

12


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

13



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

14


4. 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. Tab nà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

15



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

16


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

17


7. 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ành Windows.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 đổi qua 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 processor và bộ phân
phối sẽ chuyển giao processor cho tiến trình này.

18


Các giải thuật điều phối thông dụng: FIFO, RR, điều phối với độ ưu tiên,
SJF.

19



×