1. Trang chủ
  2. » Thể loại khác

Nghiên cứu tìm hiểu về quản lý tiến trình trong hđh windows

24 1,2K 9

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 24
Dung lượng 765,19 KB

Nội dung

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

Trang 1

BỘ CÔNG THƯƠNGTRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

KHOA CNTT

- -BÀI TẬP LỚNMÔ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đh windows

Giáo viên hướng dẫn: Th.s Nguyễn Tuấn Tú

Nhóm số 1 Lớp: ĐH Khoa học Máy tính 3- K9

Trang 2

BỘ CÔNG THƯƠNGTRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

KHOA CNTT

- -BÀI TẬP LỚNMÔ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đh windows

Giáo viên hướng dẫn: Th.s Nguyễn Tuấn Tú

Nhóm số 1 Lớp: ĐH Khoa học Máy tính 3- K9

Nhóm sinh viên thực hiện:

1 Nguyễn Việt Anh

2 Mai Quý Công

3 Nguyễn Hồng Cường

4 Nguyễn Quang Toàn

5 Bùi Văn Tuấn

Trang 3

Mục lục CHƯƠNG 1: GIỚI THIỆU VỀ TIẾN TRÌNH

Lời nói đầu 1

1 Giới thiệu, khái niệm về tiến trình 1.1 Khái niệm tiến trình 4

1.2 Phân loại tiến trình 6

1.3 Quan hệ tiến trình 10

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

2 Các thao tác điều khiển tiến trình 2.1 Phân tích vai trò của khối tiến trình 16

2.2 Tạo lập tiến trình 18

2.3 Kết thúc tiến trình 21

3 Điều phối tiến trình 3.1 Giới thiệu 22

3.2 Cơ chế điều phối độc quyền và không độc quyền

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

Trang 4

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 cung cấp 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ắt nghẽn trong

Trong các hệ điều hành đa chương, có nhiều tiến trình tồn tại trên bộ nhớ chính, các tiến trình này luân phiên giữa hai trạng thái: sử dụng processor và đợi thực hiện vào/ra hay một sự kiện nào đó xảy ra.

Tất cả các vấn đề trên sẽ được làm rõ trong đề tài này.

Bài làm của nhóm được tham khảo từ nhiều nguồn tài liệu khác nhau nên còn thiếu sót, nhiều chỗ chưa hợp lý và chính xác, mong thầy và các bạn đọc có thểgóp ý bổ sung thêm ý kiến để nhóm có thể sửa chữa, bổ sung và hoàn chỉnh đề tài Xin chân thành cảm ơn

Nhóm sinh viên thực hiện

Trang 5

CHƯƠNG 1: GIỚI THIỆU VỀ TIẾN TRÌNH

1 Giới thiệu về tiến trình, các khái niệm.

1.1 Khái niệm tiến trình là gì?

Tất cả các máy tính hiện đại đều có thể thực hiện nhiều việc cùng một lúc Trong khi thực hiện chương trình của người sử dụng, máy tính có thể đọc dữ liệu

từ đĩa và đưa ra màn hình hoặc máy in Trong môi trường đa chương trình

(multiprogramming system), một CPU có thể chuyển từ chương trình này sang chương trình khác, thực hiện mỗi chương trình trong khoảng 1% hoặc 1/10 mili giây Nếu nói chính xác, thì tại một thời điểm, CPU chỉ thực hiện được một

chương trình Nhưng nếu xét trong khoảng thời gian phần trăm giây thì CPU có thểthực hiện nhiều công việc

Để hổ trợ hoạt động đa nhiệm, hệ thống máy tính cần phải có khả năng thực hiện nhiều tác vụ xử lý đồng thời nhưng việc điều khiển hoạt động song hành ở cấp

độ phần cứng là rất khó khăn.Vì vậy,các nhà thiết kế hệ điều hành đề xuất một mô hình song hành giả lập bằng cách chuyển đổi bộ xử lý qua lại giữa các chương trình để duy trì hoạt động của nhiều chương trình phải cùng một thời điểm.Trong

mô hình này các chương trình của hệ thống được tổ chức thành các tiến

trình(process)

Như vậy có thể coi tiến trình là một chương trình đang xử lý, nó sử dụng một con trỏ lệnh, tập các thanh ghi và các biến Để hoàn thành nhiệm vụ của mình, các 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ị

Chúng ta cần phân biệt rõ tiến trình và chương trình Chương trình là một thực thể thụ động chứa các chỉ thị điều khiển máy tính thi hành một tác vụ cụ thể nào đó Khi thực hiện các chỉ thị này, chương trình được chuyển thành các tiến trình là một thực thể hoạt động, với con trỏ lệnh xác định kèm thêm tài nguyên phục vụ cho hoạt động

Trang 6

Vậy nói tóm lại, tiến trình là sự biến đổi từ trạng thái này sang trạng thái

khác dưới sự tác động của chương trình và là những chương trình phải có khả năng thi hành và đang được thi hành trong máy tính.

1.2 Phân loại tiến trình.

Có thể chia thành hai loại: tiến trình tuần tự (MS_DOS) và tiến trình song song (uniprocesser và multiprocesser)

 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ếntrì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ếntrình mới khi các tiến trình trước đó chưa kết thúc.Trong này tiến trình songsong được chia thành nhiều loại:

1.2.1 Tiến trình song song độc lập:

Các tiến trình hoạt động song song nhưng không có quan hệ thông tin với nhau, trong trường hợp này hệ điều hành phải thiết lập cơ chế bảo vệ dữ liệu của các tiến trình, và cấp phát tài nguyên cho các tiến trình một cách hợp lý

Hình 1.1 Mô phỏng tiến trình song song độc lập

Trang 7

1.2.2 Tiến trình song song có quan hệ thông tin :

Trong quá trình hoạt động các tiến trình trao đổi thông tin với nhau Hai tiến trình A và B được gọi là có quan hệ thông tin với nhau nếu tiến trình này có gửi thông báo cho tiến trình kia Tiến trình gửi thông báo có thể không cần biết tiến trình nhận có tồn tại hay không? Ở đâu? Và đang ở giai đoạn nào?

Hình 1.2: Mô phỏng tiến song song có quan hệ thông tin

1.2.3 Tiến trình song song phân cấp :

Trong qua trình hoạt động một tiến trình có thể khởi tạo các tiến trình khác hoạtđộng song song với nó, tiến trình khởi tạo được gọi là tiến trình cha, tiến trình được tạo gọi là tiến trình con

Trong mô hình này hệ điều hành phải giải quyết vấn đề cấp phát tài nguyên cho các tiến trình con Tiến trình con nhận tài nguyên ở đâu? Từ tiến trình cha hay

từ hệ thống Ví dụ:

Trang 8

Hình 1.3: Mô phỏng tiến trình song song phân cấp

1.2.4 Tiến trình song song đồng mức:

Là các tiến trình hoạt động song song sử dụng chung tài nguyên theo nguyêntắc lần lượt, mỗi tiến trình sau một khoảng thời gian chiếm giữ tài nguyên phải tự động trả lại tài nguyên cho tiến trình kia

Hình 1.4: Mô phỏng tiến trình song song đồng mức

1.3 Quan hệ tiến trình

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

Trang 9

1.3.1 Quan hệ độc lập:

Tiến trình được gọi là độc lập nếu hoạt động cả nó không gây ảnh hưởng hoặc 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.Tiếntrì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ể 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

1.3.2 Quan hệ hợp tác:

Tiến trình được gọi là quan hệ hợp tác (song hành) nếu hoạt động của nó gây ảnh hưởng đến 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 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.4 Các trạng thái 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ý……

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:

 Mới tạo (New): Chương trình mới được đưa vào hàng đợi.

 Running: Chương trình được thi hành.

 Ready: Chương trình đưa vào hàng đợi ở trạng thái sẵn sàng được thi

hành

 Waiting: Chương trình mới đưa vào ở trạng thái chờ

Trang 10

 Kết thúc (Halt): Kết thúc một tiến trình.

Các trạng thái của tiến trình được biểu diễn qua sơ đồ sau:

Hình 1.2: Các trạng thái của một tiến trình

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

Các cung chuyển tiếp trong sơ đồ trạng thái biểu diễn 6 sự chuyển trạng thái có thểxảy ra trong các điều kiện sau:

 Tiến trình mới tạo được đưa vào hệ thống

 Bộ điều phối cấp phát cho tiến trình một khoảng thời gian sử dụngCPU

 Tiến trình kết thúc

 Tiến trình yêu cầu một tài nguyên chưa được đáp ứng vì tài nguyênchưa được sẵn sàng để cấp phát tại thời điểm đó, hoặc tiến trình phảichờ một sự kiện hay thao tác nhập xuất

 Bộ điều phối chọn một tiến trình khác để chờ xử lý

 Tài nguyên mà tiến trình yêu cầu trở nên sẵn sàng để cấp phát, hay sự kiện thao tác nhập xuất tiến trình đang đợi hoàn tất

Theo thời gian hoạt động tiến trình sẽ thay đổi trạng thái Có 2 cấp độ trạng thái là:

1.4.1 Trạng thái vĩ mô: do hệ điều hành đặt ra để quản lý process.

- Trạng thái vĩ mô: trạng thái chi tiết sau từng lệnh máy được thực thi

Trang 11

- Trạng thái vĩ mô bao gồm: running (đang chiếm CPU và chạy), ready(đang chờ CPU), blocked (bị giam vì chờ CPU).

- Sơ đồ trạng thái:

Hình 1.3: Sơ đồ trạng thái của tiến trình.

1 Thực hiện CPU tốc độ chậm.

2 Chạy hết khe thời gian.

3 Được chọn để chạy khe thời gian kế.

4 I/O sẵn sàng phục vụ.

1.4.2 Trạng thái vi mô của tiến trình:

Để quản lý trạng thái của từng process, HĐH sẽ dùng 1 record dữ liệu gồm nhiều field, mỗi field chứa 1 thông tin trạng thái mà HĐH muốn quản lý

Một field đặc biệt trong record quản lý là field chứa mã trạng thái vĩ mô của process tương ứng để HĐH biết process đang chạy hay đang Ready | Blocked.Các record quản lý của các process sẽ được hợp thành 1 bảng quản lý: bảng nàyrất quan trọng của HĐH

Bảng quản lý trạng thái thường được hiện thực bằng danh sách liên kết để việc thêm/bớt từng record dễ dàng và hiệu quả (vì tần suất tạo/xóa process rất cao theo thời gian)

2 Các thao tác điều khiển tiến trình

2.1 Phân tích vai trò của khối tiến trình.

Trang 12

- Khối kiểm soát tiến trình (Process Control Block - PCB)

Hình 2.1: Bảng thông tin về môi trường và trạng thái hoạt động của tiến

trình 

Chứa các thông tin ứng với mỗi process Process ID, parent process ID

• Credentials (user ID, group ID, effective ID, )

• Trạng thái process : new, ready, running, waiting…

• Program counter: địa chỉ của lệnh kế tiếp sẽ thực thi

• Các thanh ghi CPU

• Thông tin dùng để định thời CPU: priority,

• Thông tin bộ nhớ: base/limit register, page tables…

• Thông tin thống kê: CPU time, time limits…

• Thông tin trạng thái I/O: danh sách thiết bị I/O được cấp phát, danh sách các file đang mở,  

Trang 13

tiến trình con đến lượt nó có thể tạo tiến trình mới…quá trình này sẽ tiếp tục tạo ra cây tiến trình.

Các công việc hệ điều hành cần thực hiện khi tạo lập tiến trình:

 Định danh cho tiến trình mới phát sinh

 Đưa tiến trình vào danh sách quản lý của hệ thống

 Xác định độ ưu tiên cho tiến trình

 Tạo PCB cho tiến trình

 Cấp phát tài nguyên ban đầu cho tiến trình

 Khi một tiến trình tạo lập một tiến trình con, tiến trình con có thể sẽ được hệđiều hành trực tiếp cấp phát tài nguyên hoặc được tiến trình cha cho thừahưởng một số tài nguyên ban đầu

 Khi một tiến trình tạo tiến trình mới, tiến trình ban đầu có thể xử lý theo một trong hai khả năng sau:

 Tiến trình cha tiếp tục xử lý đồng hành với tiến trình con

 Tiến trình cha chờ đến khi một tiến trình con nào đó hoặc tất cả các tiến trình con có kết thúc xử lý

 Các hệ điều hành khác nhau có thể lựa chọn các cài đặt khác nhau để thực hiện một thao tác lập trình một cây tiến trình

 Ví dụ về tạo lập cây tiến trình:

Hình 2.2: Một cây tiến trình trong UNIX

Trang 14

Hình 2.3: Trình bày mô hình luân chuyển CPU giữa hai tiến trình

2.3 Kết thúc tiến trình

Một tiến trình kết thúc xử lý khi nó hoàn tất chỉ thị cuối cùng và sử dụng một lời gọi hệ thống để yêu cầu hệ điều hành hủy bỏ nó Đôi khi một tiến trình có thể yêu cầu hệ điều hành kết thúc xử lý của một tiến trình khác

- Khi một tiến trình kết thúc, hệ điều hành thực hiện các công việc:

 Thu hồi các tài nguyên của hệ thống đã cấp phát cho tiến trình

 Hủy tiến trình khỏi tất cả các danh sách quản lý của hệ thống

 Hủy bỏ PCB của tiến trình

Hầu hết các hệ điều hành không cho phép các tiến trình con tiếp tục tồn tại nếu tiến trình cha đã kết thúc.Trong những hệ thống như thế, hệ điều hành sẽ tự động phát sinh một loạt các thao tác kết thúc tiến trình con

- Một tiến trình cha có thể kết thúc việc thực thi của một trong những tiến trình con với nhiều lý do khác nhau:

 Tiến trình con sử dụng tài nguyên vượt quá mức được cấp Điều này yêucầu tiến trình cha có một cơ chế để xem xét trạng thái của các tiến trìnhcon

 Công việc được gán tới tiến trình con không còn cần thiết nữa

Trang 15

 Quá trình cha đang kết thúc và hệ điều hành không cho phép một quátrình con tiếp tục nếu quá trình cha kết thúc Trên những hệ thống nhưthế, nếu một quá trình kết thúc (bình thường hoặc không bình thường),thì tất cả quá trình con cũng phải kết thúc Trường hợp này được xemnhư kết thúc xếp tầng (cascading termination) thường được khởi tạo bởi

hệ điều hành

3 Điều phối tiến trình

3.1 Giới thiệu

 Mục đích:

Sự công bằng: 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

Tính hiệu quả: Hệ thống phải tận dụng được CPU 100% thời gian (thời gian

 Các đặc điểm của tiến trình:

Điều phối hoạt động của các tiến trình là một vấn đề rất phức tạp, đòi hỏi hệ điều hành khi giải quyết phải xem xét các yếu tố khác nhau để có thể đạt được mụctiêu đề ra Một số đặc tính cần được quan tâm như tiêu chuẩn điều phối:

- Tính hướng nhập xuất của tiến trình: khi một tiến trình nhận được CPU, chủ yếu nó chỉ sử dụng CPU cho đến khi phát sinh một yêu cầu nhập xuất Hoạt

Trang 16

động của các tiến trình như thế thường bao gồm nhiều lượt sử dụng CPU, mỗi lượt trong một thời gian khá ngắn.

- Tính hướng xử lý của tiến trình: khi một tiến trình nhận được CPU, nó có khuynh hướng sử dụng CPU đến khi hết thời gian dành cho nó Hoạt động của tiến trình như thế thường bao gồm một số ít lượt sử dụng CPU, nhưng mỗi lượt trong một thời gian đủ dài

- Tiến trình tương tác hay xử lý theo lô: người sử dụng theo kiểu tương tác thường yêu cầu được hồi đáp tức thời đối với các yêu cầu của họ, trong khi các tiến trình của tác vụ được xử lý theo lô nói chung có thể trì hoãn trong một thời gian chấp nhận được

- Độ ưu tiên của tiến trình: Các tiến trình có thể được phân cấp theo một đánh giá nào đó, một cách hợp lý, các tiến trình quan trọng hơn (có độ ưu tiên hơn) cần được ưu tiên hơn

Thời gian sử dụng CPU của tiến trình: Một số quan điểm ưu tiên chọn những tiến trình đã sử dụng CPU nhiều thời gian nhất vì hy vọng chúng sẽ cần ít thời giannhất để hoàn tất và rời khỏi hệ thống.Tuy nhiên cũng có quan điểm cho rằng các tiến trình nhận được CPU trong ít thời gian là những tiến trình đã phải chờ lâu nhất, do vậy ưu tiên chọn chúng

Thời gian còn lại tiến trình cần để hoàn tất: có thể giảm thiểu thời gian chờ đợi trung bình của các tiến trình bằng cách cho các tiến trình cần ít thời gian nhất để hoàn tất được thực hiện trước.Tuy nhiên đáng tiếc là rất hiếm khi biết được tiến trình cần bao nhiêu thời gian nữa để kết thúc xử lý

3.2 Cơ chế điều phối độc quyền và không độc quyền

3.2.1 Cơ chế điều phối độc quyền

Nguyên lý: cơ chế này cho phép một tiến trình khi nhận được CPU sẻ có quyềnđộc chiếm CPU đến khi hoàn tất xử lý hoặc tự giải phóng CPU Khi đó quyết định điều phối sẻ xảy ra các trường hợp sau

 Tiến trình chuyển từ trạng thái running  blockit

 Kết thúc tiến trình

Ngày đăng: 16/04/2017, 12:20

TỪ KHÓA LIÊN QUAN

w