Bài giảng Quản trị kinh doanh - Bài 2: Quản lý tiến trình - Trường Đại học Công nghiệp Thực phẩm Tp. Hồ Chí Minh

10 12 0
Bài giảng Quản trị kinh doanh - Bài 2: Quản lý tiến trình - Trường Đại học Công nghiệp Thực phẩm Tp. Hồ Chí Minh

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

Thông tin tài liệu

Running Blocked Ready Dispatch Waik up Over time Ready suspend Blocked suspend Event Terminated Suspend Activate Suspend Suspend Activate Event Terminated ACTIVE STATE SUSPENDED STATE.[r]

(1)

Bài 2: Quản lý tiến trình

Nội dung

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

 Đồng giải pháp giải tranh chấp  Tắc nghẽn

Mục tiêu Thời lượng học

 Trình bày khái niệm tiến trình, trạng thái tiến trình trình biến đổi trạng thái

 Trình bày khái niệm luồng,

đồng giải tranh chấp  Trình bày vấn đề liên quan

đến Deadlock

 tiết

(2)

Bài 2: Quản lý tiến trình

TÌNH HUỐNG DẪN NHẬP

Tình

Task Manager tiện ích giúp quản lý tiến trình máy tính Vậy tiến trình hoạt động nào?

Câu hỏi

(3)

Bài 2: Quản lý tiến trình

2.1. Khái niệm tiến trình (Process) 2.1.1. Định nghĩa

Trong xem xét khái niệm tiến trình, khái niệm quan trọng

để hình dung cơng việc máy tính ngày

Chúng ta tìm hiểu khái niệm trạng thái (rời rạc) tiến trình

cách mà tiến trình chuyển từ trạng thái sang trạng thái khác với thao tác tiến trình

Khái niệm tiến trình lần kỹ sư thiết kế hệ thống MULTICS vào năm 60 Trong thời kỳđầu tiên, tiến trình hiểu nhiều trường hợp đồng nghĩa chương trình, tốn (Task) đối tượng xử lý phục vụ,

Người ta thường dùng định nghĩa tiến trình chương trình lúc chạy 2.1.2. Khối điều khiển tiến trình (Process Control Block – PCB)

Đại diện cho tiến trình hệ điều hành khối điều khiển tiến trình (PCB) PCB cấu trúc liệu chứa thông tin quan trọng tiến trình

khác hệ thống khác nhau, thường có:

 Trạng thái tiến trình

 ID (Identifier) cho tiến trình

 Độưu tiên (Priority) tiến trình

 Thơng tin nhớ

 Thơng tin tài ngun tiến trình sử dụng

 Vùng ghi

PCB đối tượng quan trọng, nhờ hệđiều hành có tồn thơng tin

bản tiến trình Khi hệ điều hành chuyển (Switch) xử lý từđang phục vụ tiến trình sang phục vụ tiến trình khác, dùng vùng cho ghi PCB lưu thông tin giá trị ghi hệ thống để tiếp tục thực tiến trình tiến trình đến lượt sử dụng xử lý

Tóm lại, PCB đối tượng đại diện cho tiến trình hệ điều hành Vì hệ điều hành phải có khả thực thao tác với PCB khác cách nhanh chóng, nhiều hệ thống có ghi đặc biệt ln tới PCB tiến trình chạy (Running Process) có lệnh cài đặt phần cứng đểđảm bảo nhanh chóng ghi thơng tin trạng thái vào PCB nhanh chóng đọc thơng tin

Các thao tác với tiến trình:

Hệ thống điều khiển tiến trình cần có khả thực thao tác với tiến trình, có:

 Tạo tiến trình (Create)

 Huỷ tiến trình (Free, Destroy)

 Thay đổi độưu tiên (Priority)

 Dừng (Block) tiến trình

 Kích hoạt (Waikup) tiến trình

(4)

Bài 2: Quản lý tiến trình Tiến trình tạo tiến trình gồm nhiều thao tác nhỏ:

 Gán tên cho tiến trình

 Đưa tên tiến trình vào danh sách tiến trình hệ thống

 Xác định mức ưu tiên (Priority) ban đầu cho tiến trình

 Tạo, nạp thơng tin PCB

 Phân chia tài nguyên khởi đầu cho tiến trình

Tạo tiến trình:

Một tiến trình tạo tiến trình Tiến trình tiến trình cha (Parent Process) cịn tiến trình tạo tiến trình (Child Process) Để tạo tiến trình cần tiến trình có Tức tiến trình có tiến trình cha cịn tiến trình cha có nhiều tiến trình Các quan hệđó tạo kiến trúc tiến trình

Xố tiến trình:

Xố tiến trình loại bỏ khỏi hệ thống Khi tài nguyên phân chia cho tiến trình sẽđược giải phóng, trả lại cho hệđiều hành, tên tiến trình xố khỏi tất danh sách hệ thống, PCB giải phóng

Dừng/ hỗn tiến trình:

Một tiến trình bị hỗn–dừng (Suspended Process) tiến trình khơng tiếp tục thực đến có tiến trình khác kích hoạt Tạm dừng (Suspending) thao tác quan trọng sử dụng nhiều hệ thống với cách cài đặt, thực khác Tạm dừng thường diễn khoảng thời gian ngắn

Ví dụ: hệđiều hành phải tạm dừng số tiến trình (khơng phải ln tất cả) thời gian ngắn hệ thống tải,…

Trong trường hợp tiến trình bị dừng thời gian dài tài ngun phải giải phóng trả lại cho hệ điều hành Việc loại tài nguyên có cần giải phóng hay khơng cịn phụ thuộc vào kiểu

Ví dụ: nhớ cần giải phóng ngay, cịn thiết bị vào thuộc quyền sử

dụng tiến trình trường hợp tiến trình bị hỗn–dừng thời gian ngắn cịn giải phóng thời gian Suspend dài hay không xác định

Tiến trình kích hoạt (Activate) thao tác chuẩn bị để tiến trình tiếp tục thực từđúng trạng thái mà bị dừng trước

Quá trình huỷ bỏ tiến trình phức tạp tiến trình cha Trong số

hệ thống tiến trình tựđộng bị huỷ bỏ theo, số hệ thống khác tiến trình tồn (độc lập với tiến trình cha)

Sự thay đổi độ ưu tiên tiến trình thường đơn giản thay đổi giá trị ưu tiên PCB hệđiều hành

2.1.3. Trạng thái tiến trình

Trong thời gian tồn mình, tiến trình tồn trang thái tách biệt (rời rạc) Sựđổi từ trạng thái sang trạng thái khác xảy kiện khác

A

B C

(5)

Bài 2: Quản lý tiến trình

Ta nói tiến trình trạng thái hoạt động (Running State) xử

lý phục vụ Cịn tiến trình sẵn sàng để xử lý phục vụ chờ đến lượt tiến trình trạng thái sẵn sàng (Ready State) Nói tiến trình trạng thái bị cản, chặn (Blocked State) chờ kiện (ví dụ kết thúc tác vụ vào/ra) để tiếp tục hoạt động Ngồi trạng thái nói cịn số

trạng thái khác tạm thời xem xét quan hệ trạng thái

Để đơn giản xem xét trường hợp máy tính có xử lý Trong hệ

thống xử lý, thời điểm có tiến trình thực hiện, cịn số tiến trình nằm trạng thái sẵn sàng (Ready) số khác trạng thái bị chặn (Blocked) Do lập danh sách chứa tiến trình

trạng thái Ready danh sách tiến trình bị khóa Mỗi tiến trình sẵn sàng nằm danh sách thứ có mức độ ưu tiên riêng (Priority) mình– tức tiến trình xếp theo thứ tự tiến trình nằm đầu danh sách tiến trình có độ ưu tiên cao xử lý thực (có nhiều tiêu chuẩn để gán độưu tiên thay đổi độưu tiên) Cịn danh sách Blocked Process nói chung khơng có thứ Blocked Process giải phóng (Unblock) kiện mà chờ

2.1.4. Biến đổi trạng thái

Khi có chương trình (Task) bắt đầu thực hiện, hệ thống sinh tiến trình tương ứng tiến trình đưa vào danh sách tiến trình sẵn sàng, đơn giản đưa vào cuối danh sách – tức có mức ưu tiên thấp Tiến trình dịch chuyển dần lên phía đầu danh sách tiến trình trước xử lý phục vụ Khi tiến trình nằm ởđầu danh sách xử lý giải phóng tiến trình xử lý phục vụ lúc xảy thay đổi trạng thái tiến trình – chuyển từ trạng thái Ready sang Running Việc trao quyền sử dụng xử lý cho tiến trình danh sách tiến trình sẵn sàng gọi tiến trình dispatching, điều thực module chương trình nằm OS gọi Dispatcher

tiến trình đổi trạng thái biểu diễn ký hiệu: dispatch(Process name): Ready  Running

Tiến trình sử dụng xử lý gọi tiến trình thực

Để ngăn chặn trường hợp vơ tình cố ý độc quyền chiếm tài nguyên hệ thống tiến trình, hệ điều hành sinh ngắt cứng đặc biệt ngắt thời gian (Timer Interrupt) nhằm xác định khoảng thời gian lớn mà tiến trình sử dụng

xử lý liên tục Nếu sau khoảng thời gian đó, tiến trình khơng tự giải phóng xử lý hệ thống sinh ngắt, theo quyền điều khiển chuyển lại cho hệ điều hành Lúc hệ điều hành

sẽ chuyển tiến trình thực từ trạng thái Running trạng thái Ready,

đưa vào danh sách tiến trình sẵn sàng, sau đưa tiến trình danh sách (tiến trình có mức ưu tiên cao nhất) vào thực (Running State) Các biến

đổi biểu diễn hai thao tác:

Running

Blocked Ready

Dispatch Blocking

(6)

Bài 2: Quản lý tiến trình interval gone (Process name): Running  Ready

dispatch (Process name): Ready  Running

Nếu tiến trình sử dụng xử lý (Running State) trình hoạt

động thực tác vụ vào/ra (I/O) tự giải phóng xử lý (tự

mình chuyển vào trạng thái Blocked để chờ tác vụ vào/ra kết thúc) Sự chuyển trạng thái biểu diễn:

blocking (Process name): Running  Blocked

Cịn tiến trình thay đổi trạng thái cuối cùng, kết thúc tác vụ vào/ra (hay nói chung xảy kiện mà tiến trình bị khóa chờ) lúc tiến trình chuyển từ trạng thái Blocked sang trạng thái Ready – sẵn sàng để thực tiếp Tiến trình biểu diễn:

waikup(Process name): Blocked  Ready

Với trạng thái trên, có khả chuyển trạng thái tiến trình là:

Dispatch (Process name): Ready  Running interval gone(Process name): Running  Ready blocking (Process name): Running  Blocked waikup (Process name): Blocked  Ready

Chú ý:

Trong khả trên, có khả thứ sinh chương trình người sử dụng, cịn lại khả khác đối tượng khác bên tiến trình gây

Tạm dừng kích hoạt (Suspending and Activating):

Chúng ta biết khái niệm tạm dừng kích hoạt Các thao tác quan trọng lý do:

 Nếu hệ thống hoạt động khơng

ổn định có dấu hiệu trục trặc tiến trình diễn cần tạm dừng để lại kích hoạt sau sửa lỗi

 Người sử dụng (lập trình viên) cần tạm dừng (khơng phải huỷ bỏ) tiến trình để kiểm tra kết trung gian xem chương trình có hoạt động hay khơng

 Một số tiến trình bị tạm dừng khoảng thời gian ngắn hệ thống tải sau lại kích hoạt có đủ tài ngun (hệ thống trở trạng thái bình thường)

So với mục trước, ta có thêm hai trạng thái ứng với thao tác tạm dừng kích hoạt Tác nhân dừng thân tiến trình tiến trình khác

Trong hệ có xử lý tiến trình dừng thân khơng có tiến trình khác chạy đồng thời với Cịn hệđiều hành có nhiều xử

lý tiến trình bị dừng tiến trình khác chạy xử lý khác

(7)

Bài 2: Quản lý tiến trình

Một tiến trình trạng thái Ready bị dừng tiến trình khác, lúc xảy chuyển trạng thái:

Suspend (Process name): Ready  Suspended–Ready

Tiến trình trạng thái Suspended–Ready chuyển trạng thái Ready tiến trình khác; tiến trình chuyển trạng thái biểu diễn bởi:

Activate (Process name): Suspend–Ready  Ready

Tiến trình trạng thái Blocked chuyển sang trạng thái Suspend tiến trình khác, diễn sựđổi trạng thái:

Suspend (Process name): Blocked  Suspend–Blocked

Và ngược lại, tiến trình trạng thái Suspended Blocked có thểđược kích hoạt tiến trình khác

Activate (Process name): Suspended–Blocked  Blocked

Chúng ta đặt vấn đề khơng thay tạm dừng tiến trình trạng thái Blocked, ta chờđến có kiện (kết thúc I/O) mà tiến trình đợi xảy để tiến trình chuyển trạng thái Ready Tuy nhiên tác vụ I/O hay kiện tiến trình chờ khơng xảy hay xảy

Như thế, nhà thiết kế cần phải chọn lựa: tạm dừng Blocked Process (đưa

trạng thái Suspended–Blocked) phải sinh chế cho phép đưa tiến trình từ

trạng thái Blocked sang trạng thái Ready sau chuyển thành trạng thái Suspended–Ready kết thúc I/O hay diễn kiện tiến trình chờ

Mặt khác thao tác tạm dừng thường có mức ưu tiên cao cần thực ngay, phần lớn hệ thống sử dụng cách thứ Khi kiện tiến trình chờ xảy (nếu xảy ra), trạng thái tiến trình chuyển từ Suspended – Blocked sang trạng thái Suspended – Ready:

Incommingevent (Process name): Suspended–Blocked  Suspended–Ready 2.1.5. Khái niệm luồng

Khái niệm:

Luồng dòng điều khiển phạm vi tiến trình Tiến trình đa luồng gồm nhiều dịng điều khiển khác không gian địa

Một luồng thường gọi tiến trình nhẹ (Lightweight Process–LWP), đơn vị việc sử dụng CPU; hình thành gồm:

 Một định danh luồng (Thread ID)

 Một bộđếm chương trình

 Tập ghi

 Ngăn xếp

Một luồng chia sẻ với luồng khác thuộc tiến trình phần mã, phần

liệu, tài nguyên hệđiều hành tập tin mở tín hiệu Một tiến trình truyền thống (hay tiến trình nặng) có luồng điều khiển đơn

Nếu tiến trình có nhiều luồng điều khiển, thực nhiều tác vụ thời điểm

Tại đa luồng?

(8)

Bài 2: Quản lý tiến trình

Ví dụ: Một máy chủ Web thể phải phục vụ hàng trăm trình duyệt truy xuất đồng thời Nếu máy chủ Web chạy tiến trình đơn luồng truyền thống

phục vụ trình khách thời điểm Dẫn đến thời gian mà trình khách phải chờ yêu cầu phục vụ lớn

Giải pháp thứ sử dụng đa tiến trình, có tiến trình phục vụ chạy tiến trình đơn tiếp nhận yêu cầu Khi trình phục vụ nhận u cầu, tạo tiến trình để phục vụ

yêu cầu Phương pháp đa tiến trình cách sử dụng thơng thường trước luồng trở nên phổ

biến Tuy nhiên, việc tạo tiến trình chiếm nhiều tài nguyên thời gian hệ thống

Nếu tiến trình thực tác vụ

tiến trình có lại phải chịu tất chi phí đó? Thường hiệu cho tiến trình

gồm nhiều luồng phục vụ mục đích Tiếp cận đa luồng hóa tiến trình máy chủ Web Tiến trình tạo luồng riêng lắng nghe yêu cầu; yêu cầu

được thực khơng tạo tiến trình khác mà tạo luồng khác xử lý yêu cầu Ưu điểm đa luồng:

Khả đáp ứng: đa luồng ứng dụng cho phép chương trình tiếp tục chạy, chí phần bị khóa hay thực thao tác dài Do cải thiện sựđáp ứng người dùng Ví dụ, máy chủ Web đáp ứng yêu cầu người dùng luồng yêu cầu người dùng cũđang xử lý Chia sẻ tài nguyên: mặc định, luồng chia sẻ nhớ tài nguyên tiến trình mà chúng thuộc Thuận lợi việc chia sẻ mã cho phép ứng dụng có nhiều hoạt động luồng khác nằm không gian địa Kinh tế: cấp phát nhớ tài nguyên cho việc tạo tiến trình đắt Vì luồng chia sẻ tài nguyên tiến trình mà chúng thuộc nên kinh tế để tạo chuyển ngữ cảnh luồng Khó đểđánh giá theo kinh nghiệm khác biệt chi phí cho việc tạo trì tiến trình luồng, thường nhiều thời gian để tạo quản lý tiến trình luồng Ví dụ, hệđiều hành Sun Solaris 2, tạo tiến trình chậm khoảng 30 lần tạo luồng chuyển đổi ngữ cảnh chậm lần

Khai thác kiến trúc đa xử lý: lợi điểm đa luồng phát huy kiến trúc

đa xử lý, luồng thực thi song song xử lý khác Một tiến trình đơn luồng chạy CPU Đa luồng máy nhiều CPU gia tăng tính đồng hành Trong kiến trúc đơn xử lý, CPU thường chuyển đổi qua lại luồng nhanh để tạo hình ảnh song song thực tế luồng chạy thời điểm

Luồng người dùng luồng nhân:

Chúng ta vừa thảo luận xem xét luồng chiều hướng chung Tuy nhiên, hỗ trợ luồng cung cấp cấp người dùng, cho luồng người dùng

cấp nhân, cho luồng nhân

Luồng người dùng: hỗ trợ nhân cài đặt thư viện luồng cấp người dùng Thư viện cung cấp hỗ trợ cho việc tạo luồng, lập thời biểu, quản lý

(9)

Bài 2: Quản lý tiến trình

mà khơng có hỗ trợ từ nhân Vì nhân khơng biết luồng cấp người dùng, tất

việc tạo luồng lập thời biểu thực không gian người dùng mà khơng cần can thiệp nhân Do đó, luồng cấp người dùng thường tạo quản lý nhanh, nhiên chúng có trở ngại Ví dụ, nhân đơn luồng luồng cấp người dùng thực lời gọi hệ thống nghẽn làm cho tồn tiến trình bị nghẽn

Luồng nhân: hỗ trợ trực tiếp hệ điều hành Nhân thực việc tạo luồng, lập thời biểu, quản lý khơng gian nhân Vì quản lý luồng thực hệ điều hành, luồng nhân thường tạo quản lý chậm luồng người dùng Tuy nhiên, nhân quản lý luồng luồng thực lời gọi hệ thống nghẽn, nhân lập thời biểu luồng khác ứng dụng thực thi Trong môi trường đa xử

lý, nhân lập thời biểu luồng xử lý khác Hầu hết hệ điều hành Windows NT, Windows 2000, Solaris 2, BeOS Tru64 UNIX (trước Digital UNIX) – hỗ trợ luồng nhân

2.1.6. Xử lý ngắt

Trong thực tế có nhiều trường hợp tương tự ngắt máy tính

Khái niệm:

Trong kỹ thuật máy tính, ngắt (Interrupt) kiện làm thay đổi trình tự thực lệnh bình thường xử lý

Tín hiệu ngắt phần cứng xử lý Khi xảy ngắt, trình tự thực sau:

Bước 1:Điều khiển chuyển cho hệđiều hành

Bước 2: Hệđiều hành lưu lại trạng thái tiến trình bị ngắt Trong nhiều hệ thống thơng tin lưu PCB tiến trình bị ngắt

Bước 3: Hệ điều hành phân tích loại ngắt chuyển điều khiển cho chương trình xử

lý ngắt tương ứng

Bước 4: Tác nhân gây ngắt thân tiến trình chạy, kiện liên quan khơng liên quan đến tiến trình

2.1.6.1. Các dạng ngắt

Chúng ta xem xét dạng ngắt hệ thống máy lớn IBM:

Dạng SVC– Interrupt

Ngắt tiến trình chạy sinh SVC chương trình ứng dụng sinh để

yêu cầu dịch vụ hệ thống, ví dụ thực tác vụ vào/ra, cấp phát

nhớ Cơ chế SVC giúp bảo vệ hệ điều hành, người sử dụng không tự xâm nhập OS mà phải u cầu dịch vụ thơng qua lệnh SVC Do hệ điều hành ln kiểm sốt thao tác vượt q giới hạn ứng dụng hồn tồn từ

chối yêu cầu

Dạng Ngắt vào/ra

Do thiết bị vào/ra sinh Các ngắt thông báo cho xử lý thay đổi trạng thái ví dụ kết thúc tác vụ in, máy in hết giấy,

Dạng External Interrupt

(10)

Bài 2: Quản lý tiến trình Dạng Restart Interrupt

Sinh người điều kiển cần khởi động lại hệ thống, hay lệnh Restart SIGP xử lý khác hệ thống đa xử lý

Dạng Program check Interrupt

Ngắt sinh lỗi hoạt động chương trình ví dụ lệnh chia cho 0,

Dạng Machine check Interrupt

Sinh lỗi phần cứng hệ thống 2.1.6.2. Chuyển ngữ cảnh – (Context Switching)

Để xử lý loại ngắt, hệđiều hành có chương trình chun biệt gọi Interrupt Handler Như nêu, hệ thống có loại ngắt, hệđiều hành có IH (Interrupt Handler) để xử lý loại ngắt khác Khi có ngắt hệđiều hành ghi lại trạng thái tiến trình bị ngắt chuyển điều khiển cho chương trình xử lý ngắt tương ứng Điều thực phương pháp gọi “chuyển ngữ cảnh” (Context Switching)

Trong phương pháp sử dụng ghi trạng thái chương trình PSW (Program status word), chứa thứ tự thực lệnh thông tin khác liên quan

đến trạng thái tiến trình Có loại PSW:

 PSW thời (Current)

 PSW (New)

 PSW cũ (Old)

Địa lệnh (sẽ thực hiện) chứa Current PSW, Current PSW chứa thông tin loại Interrupt bị cấm (Disable) hay phép (Enable) Bộ xử lý phản ứng với loại ngắt phép, ngắt bị cấm xử lý sau bỏ qua Có số Interrupt không bị cấm: SVC, Restart,

Trong hệ có xử lý có Current PSW, có New PSW (tương

ứng cho loại ngắt) Old PSW tương ứng New PSW loại ngắt chứa

địa chương trình xử lý ngắt (Interrupt Handler) loại

Khi xảy ngắt (nếu loại ngắt khơng bị cấm), lúc tựđộng (do phần cứng thực hiện) xảy tiến trình chuyển đổi PSW sau:

SVC

I/O

External

Restart

Program check

Machine check

SVC

I/O

External

Restart

Program check

Machine check

Current PSW

Ngày đăng: 01/04/2021, 19:15

Tài liệu cùng người dùng

Tài liệu liên quan