1. Trang chủ
  2. » Luận Văn - Báo Cáo

Bài tập lớn nguyên lý hệ điều hành đề tài nguyên cứu tìm hiểu về quản lý tiến trình trong hệ điều hành windows

66 2 0

Đ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

Tiêu đề Nghiên Cứu Tìm Hiểu Về Quản Lý Tiến Trình Trong Hệ Điều Hành Windows
Tác giả Phạm Văn Tùng, Nguyễn Ngọc Hưng, Đặng Trọng Anh
Người hướng dẫn Nguyễn Bá Nghiễn
Trường học Trường Đại Học Công Nghiệp Hà Nội
Chuyên ngành Nguyên Lý Hệ Điều Hành
Thể loại Bài Tập Lớn
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 66
Dung lượng 1,3 MB

Nội dung

Trong suốt khoảng thời gian tồn tại trong hệ thống, một tiến trình có thể thay đổi trạng thái do rất nhiều nguyên nhân như: chờ đợi sự kiện nào đó xảy ra, đợi một thao tác vào/ra hoàn tấ

Trang 1

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 NGUYÊ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: Nguyễn Bá Nghiễn

Trang 2

II Nội dung học tập

1 Tên chủ đề: Nghiên cứu tìm hiểu về quản lý tiến trình trong hệ điều hành

window

2 Hoạt động của sinh viên

- Hoạt động/Nội dung 1: TỔNG QUAN VỀ TIẾN TRÌNH

- Hoạt động/Nội dung 2: CÁC THAO TÁC VỚI TIẾN TRÌNH

- Hoạt động/Nội dung 3: ĐỒNG BỘ

- Hoạt động/Nội dung 4: LẬP LỊCH CPU

- Hoạt động/Nội dung 5: BẾ TẮC VÀ CHỐNG BẾ TẮC

- Hoạt động/Nội dung 6: QUẢN LÝ TIẾN TRÌNH VỚI TASK MANAGER

(WINDOWS 11)

III Nhiệm vụ học tập

1 Hoàn thành báo cáo bài tập lớn theo đúng thời gian quy định

2 Báo cáo sản phẩm nghiên cứu được giao trước giảng viên và các sinh viên khác

IV Học liệu sử dụng cho bài tập lớn

1 Tài liệu học tập:

- Nguyễn Bá Nghiễn, Giáo trình Nguyên lý hệ điều hành

- Tài liệu điện tử trên internet

Trang 3

KẾ HOẠCH THỰC HIỆN BÀI TẬP LỚN NHÓM 1

Người thực hiện Nội dung công việc Phương pháp thực hiện

chia công việc

Họp online quaGoogle MeetPhạm Văn Tùng Tổng quan về tiến trình Tham khảo tài liệu: Sáchgiáo trình và InternetPhạm Văn Tùng Các thao tác với tiếntrình Tham khảo tài liệu: Sáchgiáo trình và Internet

Nguyễn Ngọc Hưng Bế tắc và chống bế tắc Tham khảo tài liệu: Sáchgiáo trình và InternetTất cả thành viên Quản lý tiến trình vớiTask Manager Tham khảo tài liệu: Sáchgiáo trình và Internet

Ngày 3 tháng 1 năm 2024 Giảng viên

Nguyễn Bá Nghiễn

lOMoARcPSD|39211872

Trang 4

MỤC LỤC

LỜI NÓI ĐẦU 6

I TỔNG QUAN VỀ TIẾN TRÌNH 7

1 Khái niệm tiến trình 7

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

3 Khối điều khiển tiến trình 15

4 Bảng và danh sách tiến trình 15

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

II CÁC THAO TÁC VỚI TIẾN TRÌNH 17

1 Tạo tiến trình 17

2 Kết thúc tiến trình 18

3 Chuyển đổi giữa các tiến trình 18

4 Tiểu trình (Thread) 19

a Khái Niệm 19

b Tiến trình đơn luồng và tiến trình đa luồng 19

c Thư viện tiểu trình 20

III ĐỒNG BỘ 21

1 Bài toán nhà sản xuất và người tiêu dùng 21

2 Tài nguyên găng và đoạn găng (critical segment) 22

3 Bài toán đoạn tới hạn (critical problem) 22

4 Các phương pháp giải quyết bài toán tới hạn 23

a Phương pháp khóa trong 23

b Phương pháp kiểm tra và xác lập 26

c Phương pháp đèn hiệu 27

d Phương pháp dùng thư ký 30

e Phương pháp tổ chức liên lạc giữa các tiến trình 31

IV LẬP LỊCH CPU 31

1 Các khái niệm cơ bản 31

a Khái niệm giờ CPU 31

b Các trạng thái của tiến trình liên quan đến giờ CPU 32

Trang 5

b Shortest Job First (SJF) 38

c Lập lịch SRTF ( SRT) – Shortest Remaining Time First 38

d Round-Robin (lập lịch quay vòng) 39

e Priority Scheduling (lập lịch có độ ưu tiên) 40

f Lập lịch Multi Level Queue(MLQ) 41

g Multi Level Feedback Queues (MLFQ) 42

3 Ngắt 43

a Khái niệm ngắt (Interrupt) 43

b Phân loại ngắt 43

c Quy trình xử lí ngắt 44

V BẾ TẮC VÀ CHỐNG BẾ TẮC 45

1 Tài nguyên găng 45

2 Khái niệm bế tắc 46

3 Điều kiện xảy ra bế tắc 46

a Loại trừ lẫn nhau: 46

b Giữ và chờ 46

c Không có đặc quyền 46

d Chờ vòng 47

4 Đồ thị cấp phát tài nguyên 47

5 Các phương pháp xử lý bế tắc 48

a Ngăn chặn bế tắc (Deadlock prevention) 49

b Tránh bế tắc (Deadlock avoidance) 50

c Phát hiện bế tắc 52

d Xử lý bế tắc 53

6 Kết luận chung về phòng tránh bế tắc 55

VI QUẢN LÝ TIẾN TRÌNH VỚI TASK MANAGER (WINDOWS 11) 55

1 Task Manager là gì? 55

2 Chức năng của các Tab trong Task Manager: 56

a Tab Processes (tab 琀椀ến trình): 56

b Tab Performance (Tab hiệu suất): 57

c App History: 58

d Startup apps: 59

e Tab Users (Tab người dùng): 60

f Tab Details (Tab chi 琀椀ết) 60

lOMoARcPSD|39211872

Trang 6

3 Khởi tạo 琀椀ến trình và chạy 琀椀ến trình mới 63

4 Chuỗi chờ đợi 琀椀ến trình: 63

KẾT LUẬN 65

DANH MỤC HÌNH ẢNH Hình 1: Cây tiến trình 8

Hình 2:Sơ đồ chuyển trạng thái tiến trình 9

Hình 3: Sơ đồ chuyển tiến trính 9

Hình 4:Quá trình chuyển trạng thái của các tiến trình 10

Hình 5: Sơ đồ chuyển tiến trình vào các hàng đợi 11

Hình 6: Sơ đồ chuyển trạng thái tiến trình có suspend 12

Hình 7: Sơ đồ chuyển trạng thái tiến trình với 2 suspend 13

Hình 8: Khối điều khiển tiến trình 15

Hình 9: Bảng tiến trình 16

Hình 10: Danh sách liên kết của các tiến trình có cùng trạng thái 16

Hình 11:Quá trình tạo tiến trình 18

Hình 12: Tiến trình đơn luồng và tiến trình đa luồng 20

Hình 13: Thư viện tiểu trình 20

Hình 14: Ví dụ cho phương pháp đèn hiệu với S = 2 29

Hình 15: Các trạng thái của tiến trình liên quan đến giờ CPU 32

Hình 16: Sơ đồ thực hiện tiến trình 32

Hình 17: Sơ đồ tổ chức hàng đợi các tiến trình 34

Hình 18: Phạm vi áp dụng của Long-term scheduler và Short-term scheduler 35

Hình 19: Phạm vi áp dụng của Medium-term scheduler 36

Hình 20: Minh hoạ FCFS 37

Hình 21: Minh hoạ SJF 38

Hình 22: : Minh hoạ RR 40

Hình 23: Tổ chức hàng đợi các tiến trình trong MLQ 41

Hình 24: Tổ chức hàng đợi các tiến trình trong MLFQ 42

Hình 25: Tắc đường tại ngã tư giao thông 45

Hình 26: Đồ thị có chu trình dẫn tới bế tắc 48

Hình 27: Đồ thị có chu trình không dẫn tới bế tắc 48

Hình 28: Tài nguyên chỉ có 1 thể hiện 53

Hình 29: Task Manager trong Windows 11 56

Hình 30: Tab Processes trong Task Manager 57

Hình 31: Tab Performance trong Task Manager 58

Hình 32: App History trong Task Manager 59

Hình 33: Startup apps trong Task Manager 59

Hình 34: Tab Users trong Task Manager 60

Trang 7

LỜI NÓI ĐẦU

Mọi hệ điều hành đa nhiệm, từ những phiên bản đơn người sử dụng cho đến những hệ điều hành hỗ trợ hàng nghìn người dùng, đều phải được xây dựng trên

cơ sở của khái niệm về tiến trình Do đó, một yêu cầu quan trọng trong quá trình thiết kế hệ điều hành là đảm bảo thành phần quản lý tiến trình của nó có khả năngđáp ứng toàn bộ các khía cạnh liên quan đến quản lý tiến trình

Chúng ta sẽ khám phá chi tiết những nhiệm vụ quan trọng của hệ điều hành trongquản lý tiến trình, từ việc tạo ra và điều khiển đến quyết định kết thúc một tiến trình Mục tiêu là tìm hiểu về cách những yêu cầu được giải quyết trong môi trường hệ điều hành Windows

Nhiều Tiến Trình, Thời Gian Hồi Đáp Hợp Lý: Điều này đặt ra yêu cầu về sự linh hoạt trong việc thực hiện đồng thời nhiều tiến trình nhằm tối ưu hóa thời gian xử lý, đồng thời đảm bảo sự công bằng và hợp lý trong việc phân phối tài nguyên

Quản Lý Tài Nguyên: Cấp phát và quản lý tài nguyên một cách hiệu quả là chìa khóa để tránh tình trạng bế tắc và đảm bảo sự ổn định của hệ thống

Giao Tiếp và Truyền Thông: Khả năng hỗ trợ giao tiếp giữa các tiến trình và người sử dụng đóng vai trò quan trọng trong việc tạo ra sự tương tác và linh hoạt

Để làm rõ tất cả các ý trên trong bài này, chúng ta hãy cùng đi vào tìm hiểu trong

hệ điều hành Windows

I TỔNG QUAN VỀ TIẾN TRÌNH

1 Khái niệm tiến trình

lOMoARcPSD|39211872

Trang 8

- Để 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 số 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 tại cùng 1thời điểm Trong mô hình này, các chương trình trong 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ở hữu 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 c mình, các tiến trình có thể còn 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

- Cần phân biệt rõ hai khái niệm chương trình và tiến trình Chương trình là một thực thể thụ động chứa đựng 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 cho thực hiện các chỉ thị này, chương trình được chuyển thành tiến trình là một thực thể hoạt động, với con trỏ lệnh xác định chỉ thị kế tiếp sẽ thi hành kèm theo các tập tài nguyên phục vụ cho hoạt động của tiến trình

- Cây tiến trình:

+ Một tiến trình cha có thể có nhiều tiến trình con

+ Mỗi tiến trình con chỉ thuộc về 1 tiến trình cha duy nhất

+ Một tiến trình con có thể tạo ra nhiều con khác

Trang 9

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

thời của tiến trình tại thời điểm đó Trong suốt khoảng thời gian tồn tại trong hệ thống, một tiến trình có thể thay đổi trạng thái do rất nhiều nguyên nhân như: chờ đợi sự kiện nào đó xảy ra, đợi một thao tác vào/ra hoàn tất, hết thời gian xử lí

+ Một số ít hệ điều hành chỉ cho phép tiến trình tồn tại ở một trong hai trạngthái: Not Running và Running Khi hệ điều hành tạo ra một tiến trình mới,

hệ điều hành đưa tiến trình đó vào hệ thống ở trạng thái Not Running, tiến trình ở trạng thái này để chờ được chuyển sang trạng thái Running Vì một

lý do nào đó, tiến trình đang thực hiện bị ngắt thì bộ điều phối tiến trình của

hệ điều hành sẽ thu hồi lại processor của tiến trình này và chọn một tiến trình ở trạng thái Not running để cấp processor cho nó và chuyển nó sang

lOMoARcPSD|39211872

Trang 10

trạng thái Running Tiến trình bị thu hồi processor sẽ được chuyển về lại trạng thái Not running.

H椃

+ Tại một thời điểm xác định chỉ có duy nhất một tiến trình ở trạng thái Running, nhưng có thể có nhiều tiến trình ở trạng thái Not running, các tiến trình ở trạng thái Not running được chứa trong một hàng đợi (Queue) Tiến trình đang ở trạng thái Running bị chuyển sang trạng thái Not running sẽ được đưa vào hàng đợi Hình vẽ sau đây mô tả việc chuyển trạng thái tiến trình trong các hệ điều hành sử dụng 2 trạng thái tiến trình

H椃

một trong ba trạng thái, đó là: ready, running, blocked:

+ Trạng thái Ready (sẵn sàng): Ngay sau khi khởi tạo tiến trình, đưa tiến

Trang 11

trạng thái ready là trạng thái của một tiến trình trong hệ thống đang chờ được cấp processor để bắt đầu thực hiện.

+ Trạng thái Running (thực hiện): Là trạng thái mà tiến trình đang được sở hữu processor để hoạt động, hay nói cách khác là các chỉ thị của tiến trình đang được thực hiện/ xử lý bởi processor

+ Trạng thái Blocked (khoá): Là trạng thái mà tiến trình đang chờ để được cấp phát thêm tài nguyên, để một sự kiện nào đó xảy ra, hay một quá trình vào/ra kết thúc

+ Quá trình chuyển trạng thái của các tiến trình trong được mô tả bởi sơ đồsau:

5 Chờ 1 sự kiện nào đó xảy ra

6 Sự kiện mà tiến trình đang chờ được đáp ứng

lOMoARcPSD|39211872

Trang 12

+ Bộ phận điều phối tiến trình thu hồi processor từ một tiến trình đang thực hiện trong các trường hợp sau:

dụng processor mà bộ phận điều phối dành cho nó

cao hơn tiếntrình hiện tại

khoảng thời gian của processor nhỏ hơn nhiều so với khoảng thời gian còn lại mà tiến trình hiện tại cần processor

+ Tại 1 thời điểm có thể có nhiều tiến trình đang ở trạng thái Ready hoặc Blocked nhưng chỉ có 1 tiến trình ở trạng thái Running Các tiến trình đang

ở trạng thái Ready và Blocked được chứa trong các hàng đợi riêng

H椃

+ Có nhiều lý do để một tiến trình đang ở trạng thái running chuyển sang trạng thái blocked, do đó đa số các hệ điều hành đều thiết kế một hệ thống hàng đợi gồm nhiều hàng đợi, mỗi hành đợi dùng để chứa những tiến trình đang đợi cùng một sự kiện nào đó

Tiến trình 4 trạng thái: Trong môi trường hệ điều hành đa nhiệm thì việc tổ

Trang 13

nhớ chính, sẽ dẫn đến trình trạng lãng phí bộ nhớ, không còn đủ bộ nhớ để nạp các tiến trình khác khi cần thiết Mặt khác nếu các tiến trình trong Queue đang chiếm giữ tài nguyên của hệ thống, mà những tài nguyên này lại là những tài nguyên các tiến trình khác đang cần, điều này dẫn đến tình trạng sử dụng tài nguyên không hợp lý, làm cho hệ thống thiếu tài nguyên (thực chất là thừa) trầm trọng và có thể làm cho hệ thống bế tắc.

Với những lý do trên các hệ điều hành đa nhiệm thiết kế thêm một trạng thái tiến trình mới, đó là trạng thái Suspend (tạm dừng) Trạng thái này rất cần thiết cho các hệ thống sử dụng kỹ thuật Swap trong việc cấp phát bộ nhớ cho các tiến trình( tạm hiểu là: khi 1 tiến trình đang ở trạng thái

Blocked hoặc Ready bị hệ điều hành chuyển ra đĩa để thu hồi lại không giannhớ và tài nguyên đã cấp cho nó)

H椃

+ Trạng thái Suspend là trạng thái của một tiến trình khi nó đang được lưu trữ trên bộ nhớ phụ, hay chính xác hơn đây là các tiến trình đang ở trong trạng thái blocked và/hoặc ready bị hệ điều hành chuyển ra đĩa để thu hồi lại không gian nhớ đã cấp cho tiến trình hoặc thu hồi lại tài nguyên đã cấp

lOMoARcPSD|39211872

Trang 14

cho tiến trình để cấp cho một tiến trình khác đang rất cần được nạp vào bộ nhớ tại thời điểm hiện tại.

suspend, một trạng thái suspend dành cho các tiến trình từ blocked chuyển đến, trạng thái này được gọi là blocked-suspend và một trạng thái suspend dành cho các tiến trình từ ready chuyển đến, trạng thái này được gọi là ready-suspend

+ Tới đây ta có thể hiểu các trạng thái tiến trình như sau:

đang chờ được cấp processor để thực hiện

đang đợi một sự kiện hay một quá trình I/O nào đó Ở trạng thái Blocked-suspend tiến trình đang bị chứa trên bộ nhớ phụ (đĩa) và đang đợi một sự kiện nào đó

+ Ở trạng thái Ready-suspend tiến trình đang bị chứa trên bộ nhớ phụ nhưng sẵn sàng thực hiện ngay sau khi được nạp vào bộ nhớ chính

Trang 15

 Blocked sang Blocked-suspend: nếu không còn tiến trình ready trong bộ nhớ chính và bộ nhớ chính không còn không gian nhớ trống thì phải có ít nhất một tiến trình blocked bị chuyển ra ngoài, blocked-suspend, để dành bộ nhớ cho một tiến trình không bị khoá (not blocked) khác.

 Blocked-suspend sang Ready-suspend: một tiến trình đang ở trạng thái blocked- suspend được chuyển sang trạng thái ready-suspend khi sự kiện mà nó đợi đã xảy ra

 Ready-suspend sang Ready: có 2 lý do để hệ điều hành chọn khi chuyển một tiến trình ở trạng thái ready-suspend sang trạng thái ready:

 Không còn tiến trình ready trong bộ nhớ chính, hệ điều hành phải nạp một tiến trình mới vào để nó tiếp tục thực hiện

 Nếu có tiến trình ready-suspend có độ ưu tiên cao hơn so với các tiến trình ready hiện tại thì hệ điều hành có thể chuyển nó sang trạng thái ready để nó nhiều cơ hội để được thực hiện hơn

 Ready sang Ready suspend: Hệ điều hành thường chuyển các tiến trình blocked sang suspend hơn là các tiến trình ready, vì các tiến trình ở trạng thái blocked không thể thực hiện ngay lập tức nhưng lại chiếm nhiều không gian bộ nhớ chính hơn so với các tiến trình ở trạng thái ready Tuy nhiên, nếu việc chọn tiến trình để chuyển sang suspend dựa vào 2 điều kiện: chiếm ít không gian bộ nhớ hơn và có

độ ưu tiên thấp hơn thì hệ điều hành có thể chuyển một tiến trình ready sang trạng thái suspend

lOMoARcPSD|39211872

Trang 16

3 Khối điều khiển tiến trình

khối mô tả tiến trình (process control block - PCB) Khối mô tả tiến trình bao gồm các thành phần:

 Định danh của tiến trình (Process Identifier =Pid);

 Con trỏ trạng thái của tiến trình (cho biết trạng thái hiện tại của tiến trình);

 Vùng nhớ lưu trữ giá trị các thanh ghi mà tiến trình đang sử dụng;

Trang 17

đó được liên kết thành 1 danh sách

H椃

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

hợp tác (song hành)

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 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,

lOMoARcPSD|39211872

Trang 18

+ 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áctiến trình khác trong hệ thố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 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

II CÁC THAO TÁC VỚI TIẾN TRÌNH

1 Tạo tiến trình

trình

thừa hưởng 1 phần không gian nhớ từ tiến trình cha

Trang 19

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

…) bằng cách gọi hàm abort hoặc kill

+ Thu hồi tài nguyên đã cấp phát cho tiến trình

+ Loại bỏ tiến trình ra khỏi danh sách quản lý

+ Hủy bỏ khối điều khiển tiến trình

3 Chuyển đổi giữa các tiến trình

của tiến trình (context switch)

+ Có ngắt

+ Tiến trình gọi lời gọi hệ thống

trong PCB, lúc này trạng thái của các tiến trình cũng được thay đổi

lOMoARcPSD|39211872

Trang 20

- Khi được cấp phát CPU thực hiện trở lại, ngữ cảnh được khôi phục từ PCB vào các thanh ghi và bảng tương ứng

4 Tiểu trình (Thread)

a Khái Niệm.

tự như tiến trình Tức là nó cũng phải xử lý tuần tự các chỉ thị máy của nó,

nó cũng sở hữu con trỏ lệnh, một tập các thanh ghi, và một không gian stack riêng

một tiến trình chia sẻ một không gian địa chỉ chung, nhờ đó mà các tiểu trình có thể chia sẻ các biến toàn cục của tiến trình và có thể truy xuất lên các vùng nhớ stack của nhau

+ khả năng đáp ứng cao

+ chia sẻ tài nguyên

+ tiết kiệm chi phí

+ tăng hiệu suất xử lý

b Tiến trình đơn luồng và tiến trình đa luồng

phạm vi một tiến trình đơn Các tiến trình đơn này có thể hoạt động trên các hệ thống multiprocessor hoặc uniprocessor Các hệ điều hành khác nhau có cách tiếp cận mô hình tiểu trình khác nhau

Trang 21

c Thư viện tiểu trình

- Hoạt động trong chế độ người sử dụng để hỗ trợ các tác vụ

- Thư viện tiểu trình cung cấp các hàm khởi tạo, định thời và quản lý luồng như: create, exit, wait, yield…

- Thư viện tiểu trình dùng Thread Control Block (TCB) để lưu trạng thái của các tiểu trình của người sử dụng

- Nhân không biết sự có mặt của các tiểu trình người sử dụng

H椃

lOMoARcPSD|39211872

Trang 22

III ĐỒNG BỘ

1 Bài toán nhà sản xuất và người tiêu dùng.

- Bài toán: Giả sử có hai tiến trình P và C song hành Tiến trình P cung cấp

thông tin cho hoạt động của tiến trình C Thông tin do P sản xuất được đưavào trong vùng đệm và C lấy thông tin từ vùng đệm ra để sử dụng Trong trường hợp kích thước vùng đệm hạn chế, hãy xây dựng thuật toán điều khiển hoạt động của 2 tiến trình

- Phân tích bài toán: Do kích thước vùng đệm hạn nên dẫn đến có hai

trường hợp xảy ra :

+ Vùng đệm đầy: Tiến trình P ở trạng thái chờ cho đến khi vùng đệm không đầy

+ Vùng đệm rỗng: Tiến trình C ở trạng thái chờ thông tin

- Giả sử vùng đệm chứa được n phần tử và thông tin của mỗi phần tử có kiểu item nào đó được định nghĩa

- Vùng đệm được cài đặt là một mảng vòng với 2 con trỏ logic in và out

Trong đó:

+ in: trỏ vào vị trí trống kế tiếp trong bộ đệm

+ out: trỏ vào vị trí phần tử dữ liệu đầu tiên trong bộ đệm.

+ Bộ đệm rỗng khi in = out

+ Bộ đệm đầy khi (in+1) mod n = out

- Thuật toán của tiến trình sản xuất:

item nextProduced;

while (true) { /* produce an item in nextProduced */

while (((in + 1) % BUFFER_SIZE) == out) ; /* do nothing */

Trang 23

- Thuật toán của tiến trình tiêu dùng:

2 Tài nguyên găng và đoạn găng (critical segment)

- Tài nguyên găng: Là tài nguyên cùng cần thiết cho nhiều tiến trình song

hành, xong bị hạn chế bởi khả năng dùng chung

- Đoạn tới hạn (găng): Là đoạn chương trình có sử dụng tài nguyên găng

(cập nhật dữ liệu của biến dùng chung, ghi dữ liệu lên file, …)

- Yêu cầu: Khi một tiến trình này đang thực hiện đoạn găng thì các tiến

trình khác không được phép thực hiện đoạn găng của mình

3 Bài toán đoạn tới hạn (critical problem)

- Giả sử hệ thống có n tiến trình được ký hiệu là P0,P1, ,Pn-1 hợp tác, mỗi tiến trình có một đoạn tới hạn Tìm một phương thức sao cho các tiến trìnhvượt qua đoạn tới hạn của mình mà không ảnh hưởng đến hoạt động của

cả hệ thống

- Mỗi tiến trình trước khi thực thi đoạn tới hạn phải yêu cầu cấp phép từ hệ thống

- Nguyên tắc giải quyết là phải thiết kế một nghi thức sao cho các tiến trình

có thể sử dụng để hợp tác với nhau và thỏa mãn 3 điều kiện:

 Điều kiện loại trừ lẫn nhau: Tại mỗi thời điểm, số tiến trình vào đoạn

tới hạn không vượt quá khả năng phục vụ của tài nguyên

 Điều kiện tiến triển: Không tiến trình nào được phép ở lâu vô hạn

trong đoạn tới hạn của mình

lOMoARcPSD|39211872

Trang 24

 Điều kiện chờ đợi có giới hạn: Tiến trình không phải chờ đợi vô hạn

trước khi đi vào đoạn tới hạn của mình

- Trên thực tế, 2 xu hướng mà các hệ điều hành thường dùng để giải quyết các bài toán tới hạn là:

 Sử dụng các thuật toán cấp thấp (nằm ngay trong tiến trình)

 Sử dụng các thuật toán cấp cao (nằm ngay trong tiến trình)

4 Các phương pháp giải quyết bài toán tới hạn.

a Phương pháp khóa trong.

- Nguyên tắc: Nếu 2 hay nhiều tiến trình cùng cùng sử dụng chung 1 tài nguyên R có khả năng phục vụ bằng 1, thì giải thuật chỉ cho phép 1 tiến trình được thực hiện còn các tiến trình khác phải chờ

 Mỗi tiến trình sử dụng 1 byte trong bộ nhớ để làm khóa

 Khi tiến trình vào đoạn tới hạn, byte khóa của nó được gán bằng 1 để thông báo cho các trình khác biết tài nguyên R đã được sử dụng

- Khi tiến trình ra khỏi đoạn tới hạn, byte khóa của nó được gán bằng

0 để thông báo cho các trình khác biết tài nguyên R đã được giải phóng

- Trước khi vào đoạn tới hạn các tiến trình phải kiểm tra byte khoá của các tiến trình khác Nếu có byte nào đó chứa giá trị bằng 1 thì tiến trình phải chờ cho tới khi byte đó nhận giá trị 0

- Thuật toán: (cho bài toán: có 2 tiến trình, khả năng phục vụ của R =1)

// Tiến trình P1

Trang 25

Tiến trình 1 vào đoạn tới hạn;

- Thuật toán Dekker sinh ra để giải quyết vấn đề trên, là thuật toán cải tiến của thuật toán dùng phương pháp khóa trong, thuật toán của Dekker dùng thêm 1 biến dùng chung TT để xác định độ ưu tiên của các tiến trình khi cả 2 cùng muốn sử dụng tài nguyên R:

 Khi TT = 1, tiến trình P1 được ưu tiên sử dụng R trước

 Khi TT = 2, tiến trình P2 được ưu tiên sử dụng R trước

- Thuật toán Dekker:

While (TT == 2) ;//do nothing K1 = 1;

lOMoARcPSD|39211872

Trang 26

} Tiến trình P1 vào đoạn tới hạn

while (TT == 1) ;//do nothing K2 = 1;

} Tiến trình P2 vào đoạn tới hạn

K2 = 0; TT = 1;

Phần còn lại của tiến trình P2; }

while (false);

}

- Ưu điểm của phương pháp khóa trong:

 Điều độ hợp lý trong mọi trường hợp, do đó tận dụng và phát huy khả năng tối đa của tài nguyên

Trang 27

 Sẽ quá phức tạp khi số tiến trình và số đoạn tới hạn tăng.

 Tiến trình phải chờ đợi tích cực trước khi vào đoạn găng: trong khi chờ đợi vẫn phải kiểm tra khóa của các tiến trình khác, do đó chiếm dụng thời gian CPU, tức lãng phí thời gian CPU

b Phương pháp kiểm tra và xác lập

- Nguyên tắc chung: : Phương pháp này dựa vào sự hỗ trợ của phần cứng: có một thủ tục sử dụng nhiều lệnh liên tục không thể tách rời (không thể bị ngắt), đó là thủ tục TS (Test and Set)

void TS(unsigned char *L)

Trang 28

- Ưu điểm: Phương pháp này đơn giản, độ phức tạp không tang khi

số tiến trình và số đoạn tới hạn tăng lên Nhiều máy tính được trang

bị tới vài lệnh kiểu này để điều khiển tiến trình như IBM PC có 4 lệnh

- Nhược điểm: Tiến trình vẫn phải chờ đợi tích cực; khó xác định được tiến trình nào sẽ vào đoạn tới hạn nào khi có quá nhiều tiến trình cùng chờ

Trang 29

Wakeup(Pj); //Pj hoạt động tiếp và vào đoạn găng}

- Thuật toán khi triển khai:

//Tiến trình Pi

do{

Pi vào đoạn găng

lOMoARcPSD|39211872

Trang 30

Signal();//Giải phóng tài nguyên R để tiến trình Pjđầu hàng đơi vào đoạn găng.

Phần còn lại của Pi}while(true);

- - Ưu điểm: Trong phương pháp này, mỗi tiến trình chỉ cần kiểm tra quyền vào đoạn tới hạn một lần, sau đó nó được vào đoạn tới hạn hoặc phải xếp hàng đợi, trong khi đợi, tiến trình không ở trạng thái tích cực vì khi một tiến trình nào đó ra khỏi hàng đợi, nó sẽ bật tín hiệu đưa tiến trình thoát khỏi trạng thái chờ để vào đoạn tới hạn

- Nhược điểm: Phép WAIT và SIGNAL phải tổ chức và xử lí hàng đợi do đó phụ thuộc vào từng hệ điều hành cụ thể và thường được thể hiện dưới dạng các thủ tục Khi các tiến trình nằm trong hàng đợi, cần phải áp dụng các thuật toán xử lí hàng đợi để đạt được kết quả tối ưu

H椃

Trang 31

- Nguyên tắc chung: Trình thư ký monitor là bộ các thủ tục và cấu trúc thông tin động, hoạt động trong chế độ phân chia thời gian, hỗ trợ việc thực hiện tiến trình Mỗi điểm chỉ có một tiến trình làm việc được với monitor.

- Cơ chế hoạt động của monitor:

 Khi tiến trình muốn sử dụng tài nguyên, hệ thống gắn monitor vào tiến trình Nếu được phép sử dụng tài nguyênthì tiến trình sẽ được tiếp tục bình thường nếu không thì tiến trình được xếp vào hàng đợi

 Khi tài nguyên găng được giải phóng thì monitor nhận điều khiển và bật tín hiệu giải phóng tiến trình khỏi trạng thải chờ

- Chú ý:

 Monitor không phải là tiến trình mà chỉ một tiên là một đối tượng thụ động

 Monitor nằm ngoài tiến trình

 Monitor dược kich hoạt khi tiến trình cần sử dụng (thông thường monitor được hệ thống kích hoạt khi phân phối lạitài nguyên)

- Ưu điểm: Monitor chữa nhiều cấu trúc thông tin động nên nó có thể giải quyết tốt vấn đề đoạn tới hạn, monitor có thể ghép vào lớp công

cụ hệ thống nên có tính phổ dụng cao (nhiều tiến trình có thể sử dụng được)

- Nhược điểm: Monitor cũng có thể trở thành tài nguyên găng

e Phương pháp tổ chức liên lạc giữa các tiến trình.

lOMoARcPSD|39211872

Trang 32

- Hệ điều hành xây dựng một hệ thông bảo giữa các tiến trình dựa trên ba thao tác cơ bản

 Send message: Gửi thông báo;

 Receive message: Nhận thông báo;

 Communication link: Tạo móc nối liên lạc giữa các tiến trình

- Dựa vào hệ thông báo này, các tiến trình có thể phối hợp để vào đoạn tới hạn bằng cách trao đổi thông báo cho nhau Hệ thông báo

sử dụng hai cách thức liên lạc:

 Trực tiếp: bằng cách sửa hai thao tác gửi và nhận;

 Gián tiếp, dùng hộp thư trung gian

IV LẬP LỊCH CPU

1 Các khái niệm cơ bản

a Khái niệm giờ CPU

CPU là một loại tài nguyên quan trọng của máy tính Mọi tiến trình muốn hoạt động được đều phải có sự phục vụ của CPU (để xử lí, tính toán ) Thời gian

mà CPU phục vụ cho một tiến trình hoạt động được gọi là giờ CPU

Tại mỗi thời điểm nhất định, chỉ có một tiến trình được phân phối giờ CPU

để hoạt động (thực hiện các lệnh của mình)

Trang 33

b Các trạng thái của tiến trình liên quan đến giờ CPU

Trong chế độ đa chương trình, có ba trạng thái của tiến trình liên quan mật thiết đến giờ CPU bao gồm:

sự kiện mà nó chờ đợi xuất hiện, tiến trình sẽ quay trở lại trạng thái sẵn sàng

Như vậy, trong suốt thời gian tồn tại của mình, các tiến trình sẽ tuân thủ theo sơ đồ thực hiện sau:

H椃

lOMoARcPSD|39211872

Ngày đăng: 22/03/2024, 22:37

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w