1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Hệ điều hành - Chương 2: Quản lý tiến trình

85 10 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 đề Quản lý tiến trình
Trường học Trường Đại Học
Chuyên ngành Hệ điều hành
Thể loại Bài giảng
Định dạng
Số trang 85
Dung lượng 1,43 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Nội dung chính của bài giảng Hệ điều hành Chương 2 Quản lý tiến trình nhằm trả lời cho câu hỏi Vì sao muốn xử lý đồng thời nhiều công việc trên máy tính? Việc chuyển trạng thái hệ thống tính toán phải dựa vào một sự kiện phát sinh trong hệ thống gọi là hiện tượng ngắt.

Trang 1

CHƯƠNG 2

Quản lý tiến trình

Trang 2

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

Trang 3

 Vì sao muốn xử lý đồng thời nhiều công việc trênmáy tính ?

Trang 4

 Vì sao muốn xử lý đồng thời nhiều công việc trênmáy tính ?

Xử lý đồng thời để tăng tốc độ xử lý

Trang 5

Xử lý đồng hành, những khó khăn ?

- Tài nguyên giới hạn, ứng dụng

“vô hạn”

- Nhiều hoạt động đan xen

??? Phân chia tài nguyên ?

??? Chia sẻ tài nguyên ?

??? Bảo vệ?

Excel

Visual C++

CDplayer Winword

Trang 6

Giải pháp

HĐH: “Ai cũng có phần khi đến lượt mà!”

-“Chia để trị”, cô lập các hoạt động.

- Mỗi thời điểm chỉ giải quyết 1 yêu cầu.

- Aûo hoá tài nguyên: biến

Trang 7

1 Tổng quan về tiến trỡnh

 Trạng thái của một hệ thống tính toán tại một thời

điểm đ-ợc hiểu là một bộ thông tin của tất cả cácthành phần trong hệ thống tính toán

 Một dãy chuyển trạng thái của hệ thống tính toán kýhiệu là S0, S1, Sn trong đó S0 là trạng thái đầu, Sn làtrạng thái kết thúc thì ta gọi đó là một tiến trình

 Việc chuyển trạng thái hệ thống tính toán phải dựa vào một sự kiện phát sinh trong hệ thống gọi

là hiện t-ợng ngắt.

S 0 S 1 S 2 S 3 S 4 S 5 S n-1 S n S n+1 .

A

B

Trang 8

Khái niệm tiến trình (process)

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

 Tiến trình sở hữu một con trỏ lệnh, một con trỏ stack, một tập các thanh ghi, một khơng gian địa chỉ trong bộ nhớ chính và tất cả các thơng tin cần thiết khác để tiến trình cĩ thể hoạt động được.

lần sẽ tạo ra 2 tiến trình khác nhau:

 Microsoft Word – [Bai tap1.doc]

 Microsoft Word – [Bai tap2.doc]

8

Trang 9

Khái niệm khác

 Saltzer: Tiến trình là một chương trình do một

processor logic thực hiện.

 Horning & Rendell: Tiến trình là một quá trình

chuyển từ trạng thái này sang trạng thái khác dưới tác động của hàm hành động, xuất phát

từ một trạng thái ban đầu nào đó.

Trang 10

Các 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 (uniprocessor và multiprocessor)

 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ạocủa tiến trình này nằm ở thân của các tiến trình khác:

Trang 11

Ph©n lo¹i tiÕn tr×nh song song

z

A B

C

Z

a b c

z

I

I

A B

C

Z

b c

z

A B

C

Z

a b c

z

Độc lập Quan hệ

thông Phân cấp

Đồng mức

Trang 13

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

Nếu nhìn ở góc độ người dùng thì có 2 loại tiến trình:

 Tiến trình của hệ điều hành: Được chạy ở chế độ đặcquyền và được truy xuất đến các vùng dữ liệu đượcbảo vệ của hệ thống

 Tiến trình của chương trình ứng dụng: Chạy ở chế độkhông đặc quyền và không được truy xuất đến các dữliệu được bảo vệ một cách trực tiếp mà phải thôngqua lời gọi hệ thống

Trang 14

Mô hình tiến trình

 Về nguyên tắc, hệ thống phải có nhiều processor, mỗi processor có nhiệm vụ thực hiện một chương trình.

 Tuy nhiên, mong muốn là thực hiện sự đa

chương trên các hệ thống chỉ có một processor.

Tức là, có thể có nhiều chương trình hoạt động đồng thời (concurrence)  Sử dụng mô hình tiến trình để tạo ra sự song song giả hay tạo ra các processor logic từ processor vật lý.

14

Trang 15

 Chế độ đa ch-ơng trình phân chia thời gian mỗi ng-ời sử dụng có cảm giác nh- chỉ có một mình mình là ng-ời duy nhất sử dụng toàn

bộ hệ thống.

 Tất cả các hệ điều hành thực hiện song song

đều do một processor của hệ thống – processor vật lý điều khiển.

 Ng-ời sử dụng đánh giá hoạt động processor trên cơ sở quan sát tiến trình của mình thực hiện -> Processor ng-ời sử dụng quan sát và

đánh giá: processor lôgic

 Processor logic gắn với tiến trình.

Mụ hỡnh tiến trỡnh

Trang 16

 Kém hiệu quả vì tài nguyên processor bị lãng phí nhiều.

 Nâng cao hiệu quả khai thác của toàn hệ thống nóichung:

 Phân chia bộ nhớ

 Phân phối thời gian của processor cho nhiều tiến trình đồng thời tồn tại.

 Đối với mỗi tiến trình, tốc độ thực hiện sẽ bị giảm :

 Thời gian truy nhập bộ nhớ tăng

 Không đ-ợc quyền sử dụng processor liên tục.

 Đối với ng-ời sử dụng: thay đổi tâm lý khai thác hệthống

Trang 17

Các vấn đề cần phải giải quyết đối với các hệ thống nhiều processor

a)Số l-ợng processor logic nên tạo ra là bao nhiêu?

b) Độ dài khoảng thời gian gắn liên tục processor vật lý cho một processor lôgic là bao nhiêu thì hợp lý?

c)Sau khi một processor lôgic hết quyền sử dụng processor vật lý thì cần chọn tiến trình nào để phân phối processor vật lý?

Các cách giải quyết khác nhau ba vấn đề nêu trên tạo ra các chiến l-ợc điều độ tiến trình khác

Trang 18

 Hệ điều hành cấp processor cho một tiến trình trong

số các tiến trình ở trạng thái sẵn sàng, sau mộtkhoảng thời gian hệ điều hành thu hồi processor củatiến trình này để cấp cho một tiến trình sẵn sàngkhác

 Khoảng thời gian đó là rất nhỏ tạo ra cảm giác cáctiến trình đều sở hữu processor  song song giả

18

Trang 19

Mô hình tiến trình

 Ví dụ:

Giả sử trong hệ thống có 3 tiến trình sẵn sàng P1, P2, P3 thì quá trình chuyển processor giữa 3 tiến trình này có thể minh họa như sau:

t2 P1: bị thu hồi processor (khi chưa kết thúc)

P3: được cấp processor t3 P3: bị thu hồi processor (khi chưa kết thúc)

P1: được cấp processor t4 P1: kết thúc và trả lại processor

P2: được cấp processor t5 P2: kết thúc và trả lại processor

P3: được cấp processor t6 P3: kết thúc và trả lại processor

Trang 20

Mô hình tiến trình

 Ví dụ: Hình sau đây minh họa quá trình thực hiện

của 3 tiến trình P1, P2, P3 ở trên:

Trang 21

Mô hình tiến trình

 Ưu điểm: Tiết kiệm được bộ nhớ vì không phải nạp tất cả chương trình vào bộ nhớ mà chỉ nạp các tiến trình cần thiết nhất.

 Cho phép các chương trình hoạt động song song nên tốc độ xử lý của toàn hệ thống tăng lên và khai thác tối đa thời gian xử lý của processor.

 Việc thu hồi processor chuyển cho tiến trình khác

là những vấn đề phức tạp Bộ phận thực hiện chức năng này của hệ điều hành được gọi là bộ điều phối (dispatcher) tiến trình.

Trang 22

Mô hình đa tiến trình (MultiProcesses)

 Hệ thống là một tập các tiến trình hoạt động đồng thời

 Các tiến trình độc lập với nhau => không có sự trao đổi thông tin hiển nhiên…

winword Visual C

CDplayer

Excel

OS

VD: Giờ thi lý thuyết môn Hệ Điều hành

Mỗi sinh viên là một tiến trình :

Cùng làm bài => Hoạt động đồng hành Có bài thi , bút, giấy…riêng => Tài nguyên riêng biệt Độc lập => Không trao đổi (về nguyên tắc)

22

Trang 23

nó cũng phải xử lý tuần tự các chỉ thị máy, 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 bao gồm nhiều tiểu trình.

Trang 24

Tieåu trình - Thread

Trang 25

 Tiểu trình là một đơn vị xử lý cơ bản trong hệ thống, nó hoàn toàn tương 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 đơn có thể gồm nhiều tiểu trình Các tiểu trình trong một tiến trình chia sẻ một không gian địa chỉ chung => 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.

Tiểu trình

Trang 26

PCB vàTCB trong mô hình multithreads

pid

Threads listContext

(Mem, global ressources…)

Scheduling statistic

Relatives( Dad, children)

PCB

tid

State(State, details)Context

(IP, local stack…)

Thread Control BlockTCB

26

Trang 27

Lợi ích của Tiểu trình

 Đáp ứng nhanh: Cho phép chương trình tiếp tục thực thi khi một bộ phận bị khóa hoặc một hoạt động dài

 Chia sẻ tài nguyên: tiết kiệm không gian nhớ

 Kinh tế: tạo và chuyển ngữ cảnh nhanh hơn tiến trình

VD: trong Solaris 2, tạo process chậm hơn 30 lần, chuyển chậm hơn 5 lần

 Trong multiprocessor: có thể thực hiện song song

Trang 28

Ví dụ: Tiểu trình

 Mỗi nhóm 2 sinh viên là một tiến trình :

 Mỗi sinh viên là một tiểu trình

 Cùng làm bài => Hoạt động đồng hành

 Cóù bài thực hành chung => Tài nguyênchung

 Trao đổi với nhau

28

Trang 29

Tiểu trình vs Tiến trình

 Tiểu trình: 1 dòng xử lý

 Tiến trình:

 1 không gian địa chỉ

 1 hoặc nhiều tiểu trình

 Các tiến trình là độc lập

 Các tiểu trình trong cùng 1

tiến trình không có sự bảo vệ lẫn nhau (cần thiết ? ).

P1

int a;

3

Trang 30

Phân chia CPU?

 1 CPU vật lý: làm thế nào để tạo ảo giác mỗi tiến trình sở hữu CPU riêng của mình ?

 Luân chuyển CPU giữa các tiến trình

 2 thành phần đảm nhiệm vai trò điều phối:

 Scheduler chọn 1 tiến trình

 Dispatcher chuyển CPU (processor) cho tiến trìnhđược chọn

CPU

30

Trang 31

Scheduler - Nhiệm vụ

 Ra quyết định chọn một tiến trình để cấp phát CPU :

 Ứng cử viên = {Các tiến trình ready list}

 0 tiến trình : CPU rảnh rỗi (idle)!

 1 tiến trình : không cần suy nghĩ nhiều, đúngkhông ?

 >1 : chọn ai bây giờ ?  Cần có thuật toánđiều phối

Trang 32

Dispatcher - Nhiệm vụ

 Nhiệm vụ của Dispatcher: Chuyển đổi ngữ cảnh

 Xét ví dụ

 Tiến trình A đang dùng CPU 1 chút thì bị HĐH thu hồi CPU

 HĐH cấp CPU cho B dùng 1 chút, HĐH thu hồi lại CPU.

 HĐH cấp CPU trở lại cho A.

 Giá trị các thanh ghi giữa những lần chuyển đổi CPU?

 Kịch bản :

 Lưu ngữ cảnh tiến trình hiện hành

 Nạp ngữ cảnh tiến trình được chọn kế tiếp

32

Trang 33

Phân biệt chương trình và tiến trình

 Một 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 để tiến hành một tác vụ nào đó.

 Khi cho thực hiện các chỉ thị này, chương trình 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 tập các tài nguyên phục vụ cho hoạt động của tiến trình.

Trang 34

2 TỔ CHỨC VÀ QUẢN LÝ TIẾN TRÌNH

Trang 35

2.1 Trạng thái tiến trình và sự chuyển 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 đó.

 Nguyên nhân một tiến trình thay đổi trạng thái :

 Phải chờ một sự kiện nào đó xảy ra

 Đợ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ý

Trang 36

ready running

dispatch

interrupt I/O or event

completion

I/O or event wait

waiting

Trang 37

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

 New (Mới tạo): tiến trình đang được tạo lập

 Running (thực hiện): Là trạng thái mà tiến trình đangđược sở hữu processor để hoạt động

 Blocked hay waiting (khoá): Là trạng thái mà tiếntrình đang chờ để được cấp phát thêm tài nguyên haychờ một sự kiện xảy ra

 Ready : là trạng thái của một tiến trình trong hệ thống

đã có đủ tài nguyên, đang chờ được cấp processor

để bắt đầu thực hiện

 Kết thúc (terminated): tiến trình hoàn tất xử lý

Tại một thời điểm, chỉ có một tiến trình có thể nhậntrạ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 blocked hayready

Trang 38

2.2 Cấu trúc dữ liệu khối quản lý

tiến trình

38

Khối quản lý tiến trình hay Khối điều khiển tiến trình (process control block - PCB)

 Quản lý mọi hoạt động của tiến trình

 Cấu trúc dữ liệu của khối điều khiển bao gồm:

 Định danh tiến trình

 Trạng thái của tiến trình

 Ngữ cảnh của tiến trình

 Thông tin giao tiếp

 Thông tin thống kê

Trang 39

status pid

(4) Thông tin giao tiếp

(5) Thông tin thống kê

(2) Trạng thái trình

(1) Định danh trình

Trang 40

Cấu trúc dữ liệu khối quản lý tiến trình

 Định danh của tiến trình (1) : giúp phân biệt các tiến trình

 Trạng thái tiến trình (2): xác định hoạt động hiện hành của tiến trình.

 Ngữ cảnh của tiến trình (3): mô tả các tài nguyên tiến trình đang trong quá trình, hoặc để phục vụ cho hoạt động hiện tại, hoặc để làm cơ sở phục hồi hoạt động cho tiến trình, bao gồm các thông tin về:

 Trạng thái CPU: nội dung các thanh ghi, quan trọngnhất là con trỏ lệnh IP lưu trữ địa chỉ câu lệnh kế tiếptiến trình sẽ xử lý Các thông tin này cần được lưu trữkhi xảy ra một ngắt, nhằm có thể cho phép phục hồihoạt động của tiến trình đúng như trước khi bị ngắt

Trang 42

Cấu trúc dữ liệu khối quản lý tiến trình

 Thông tin giao tiếp (4): phản ánh các thông tin về quan hệ của tiến trình với các tiến trình khác trong hệ thống :

 Tiến trình cha: tiến trình tạo lập tiến trình này

 Tiến trình con: các tiến trình do tiến trình này tạo lập

 Độ ưu tiên : giúp bộ điều phối có thông tin để lựa chọntiến trình được cấp CPU

 Thông tin thống kê (5): thống kê về hoạt động của tiến trình

 Thời gian đã sử dụng CPU

 Thời gian chờ

 Các thông tin này có thể có ích cho công việc đánh giátình hình hệ thống và dự đoán các tình huống tươnglai.

Trang 43

Lưu đồ chuyển CPU từ tiến trình này sang tiến trình khác

Trang 44

Process table

Trang 45

Process table

 Hệ điều hành lưu con trỏ tới từng PCB của mỗi tiếntrình trong một bảng tiến trình của toàn hệ thốnghoặc từng người dùng

 Truy cập nhanh tới các PCB

 Khi một tiến trình bị dừng, hệ điều hành loại bỏ tiếntrình khỏi bảng tiến trình và giải phóng tất cả các tàinguyên của tiến trình

Trang 46

 Tạo lập tiến trình (create)

 Kết thúc tiến trình (destroy)

 Tạm dừng tiến trình (suspend)

 Tái kích hoạt tiến trình (resume)

 Thay đổi độ ưu tiên tiến trình

Trang 47

3 TÀI NGUYÊN GĂNG VÀ ĐIỀU ĐỘ TIẾN TRÌNH

Trang 48

3.1 Tài nguyên găng (Critical Resource)

 Trong môi trường đa nhiệm dẫn đến dùng chung tàinguyên -> cạnh tranh

 Xung đột được thể hiện: Hai tiến trÌnh hoạt động đồngthời cùng ghi vào một không gian nhớ chung (mộtbiến chung) trên bộ nhớ hay hai cùng ghi dữ liệu vàomột file chia sẻ

 Những tài nguyên được hệ điều hành chia sẻ chonhiề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 được gọi là tàinguyên găng

 Tài nguyên găng có thể là tài nguyên phần cứng hoặctài nguyên phần mềm, có thể là tài nguyên phân chiađược hoặc không phân chia được

48

Trang 49

Tài nguyên găng (Critical Resource)

Ví dụ: bài toán rút tiền ngân hàng từ tài khoản dùng chung

If (tài khoản – tiền rút >=0)

tài khoản:=tài khoản – tiền rút

Else

Thông báo lỗi

endif

Trang 50

3.2 Đoạn găng (Critical Section)

 Các đoạn code trong các chương trình dùng để truy cập đến tài nguyên găng được gọi là đoạn găng

 Để hạn chế lỗi có thể xảy ra do sử dụng tài nguyên găng, tại 1 thời điểm HĐH chỉ cho 1 tiến trình nằm trong đoạn găng

 HĐH có cơ chế điều độ tiến trình qua đoạn găng

50

Trang 51

 Trong khoảng thời gian tiến trình sử dụng tài nguyên găng thì ta gọi đó là tiến trình găng.

 Một tiến trình có thể chia làm 2 đoạn : đoạn găng và đoạn còn lại.

Trang 52

2.3 Yêu cầu của công tác điều độ tiến trình qua đoạn găng

 Tại 1 thời điểm chỉ cho phép 1 tiến trình nằm trong đoạn găng, các tiến trình khác có nhu cầu vào đoạn găng phải chờ

 Tiến trình chờ ngoài đoạn găng không được ngăn cản các tiến trình khác vào đoạn găng

 Không có tiến trình nào phải chờ lâu để được vào đoạn găng

 Đánh thức các tiến trình trong hàng đợi để tạo điều kiện cho nó vào đoạn găng khi tài nguyên găng được giải phóng

52

Trang 53

Điều độ tiến trỡnh qua đoạn găng

Có 2 mức độ điều độ sơ cấp và cao cấp.

 ở mức sơ cấp

 các lệnh điều độ đ-ợc đặt ngay trong ch-ơng trìnhng-ời dùng: Kỹ thuật khóa trong (đèn hiệu), Kỹ thuậtkiểm tra và xác lập, Kỹ thuật semaphore

 Điều độ cao cấp

 lệnh điều độ đặt trong thành phần hệ điều hành

 ch-ơng trình điều phối công việc và điều phối chính

 Ng-ời sử dụng không biết tài nguyên gì và khi nàothuộc loại găng => Hệ thống phải có trách nhiệm kiểmtra nhận biết và điều độ: Dùng ch-ơng trình monitor

Trang 54

4 TẮC NGHẼN VÀ CHỐNG TẮC NGHẼN

Trang 55

4.1 Tắc nghẽn (Deadlock)

 Tắc nghẽn: Hiện tượng bắt nguồn từ sự xung đột

về tài nguyên của hai hoặc nhiều tiến trình đang hoạt động đồng thời trên hệ thống.

Trang 57

4.2 §iÒu kiÖn x¶y ra Tắc nghẽn

4 điều kiện cần có thể làm xuất hiện tắc nghẽn:

(Mutual exclusion): Mỗi thời điểm, một tài nguyên không thể chia sẻ được hệ thống cấp phát chỉ cho một tiến trình, khi tiến trình sử dụng xong tài nguyên này, hệ thống mới thu hồi và cấp phát tài nguyên cho tiến trình khác.

Ngày đăng: 08/05/2021, 12:47

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm