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

GIÁO TRÌNH KIẾN TRÚC HỆ ĐIỀU HÀNH

10 1 0

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Giáo Trình Kiến Trúc Hệ Điều Hành
Trường học Nhà Xuất Bản Khoa Học Và Kỹ Thuật
Thể loại giáo trình
Năm xuất bản 2010
Thành phố Hà Nội
Định dạng
Số trang 10
Dung lượng 443,54 KB

Nội dung

Kinh Tế - Quản Lý - Kỹ thuật - Kiến trúc - Xây dựng GIÁO TRÌNH KIẾN TRÚC HỆ ĐIỀU HÀNH NHÀ XUẤT BẢN KHOA HỌC VÀ KỸ THUẬT HÀ NỘI - 2010 Phần II Chương 3 Khái niệm Tiến trình (Process) 33..11 MMởởđđầầuu Trong chương này chúng ta sẽxem xét khái niệm process, một khái niệm quan trọng nhất đểhình dung vềcông việc của máy tính ngày nay. Chúng ta sẽtìm hiểu khái niệm vềcác trạng thái (rời rạc) của process và cũng như cách mà process chuyển từtrạng thái này sang trạng thái khác cùng với các thao tác cơbản trên process. Khái niệm process lần đầu tiên được các kỹsưthiết kếhệthống MULTICS vào những năm 60. Trong thời kỳđầu tiên, process được hiểu trong nhiều trường hợp đồng nghĩa nhưlà chương trình, bài toán (task) hay là đối tượng được bộxửlý phục vụ,.. Người ta thường dùng định nghĩa process nhưlà chương trình trong lúc chạy. 33..22 TTrrạạnngg tthhááii ccủủaa pprroocceessss Trong thời gian tồn tại của mình, process tồn tại trong các trang thái tách biệt (rời rạc). Sựđổi từtrạng thái này sang trạng thái khác có thểxảy ra bởi các sựkiện khác nhau. Nói rằng process ởtrạng thái hoạt động (running state) nếu nó đang được BXL phục vụ. Còn nếu process đã sẵn sàng đểđược BXL phục vụnhưng đang chờđến lượt thì proces ởtrạng thái sẵn sàng – ready state. Nói rằng process ởtrạng thái bị cản, chặn – blocked state nếu nhưnó đang chờmột sựkiện nào đó (ví dụkết thúc tác vụvàora) đểcó thểtiếp tục hoạt động. Ngoài 3 trạng thái nói trên còn một số trạng thái khác nhưng tạm thời chúng ta chỉxem xét quan hệgiữa 3 trạng thái trên. Đểđơn giản chúng ta xem xét trường hợp máy tính chỉcó một BXL. Trong hệ thống một BXL, tại một thời điểm chỉcó thểcó một process được thực hiện, còn một sốprocess nằm trong trạng thái sẵn sàng (ready) và một sốkhác trong trạng thái bịchặn (blocked). Do đó chúng ta có thểlập một danh sách chứa các process ở trạng thái ready và một danh sách các blocked process. Mỗi ready process nằm trong list thứ nhất sẽcó mức độ ưu tiên riêng (priority) của mình- tức là các process đó được sắp xếp theo thứtựvà process nằm ởđầu danh sách sẽlà process có độưu tiên cao nhất và sẽđược BXL thực hiện tiếp theo (có nhiều tiêu chuẩn để gán priority và thay đổi priority). Còn danh sách các blocked process nói chung không có thứtựvì blocked process sẽđược giải phóng (unblock) bởi các sựkiện mà nó đang chờ. 33..33 SSựựcchhuuyyểểnn ttrrạạnngg tthhááii ccủủaa pprrooccee ssss Khi có một chương trình – task bắt đầu được thực hiện, hệthống sinh ra một process tương ứng và process đó được đưa vào danh sách các ready process, đơ n giản nhất là đưa vào cuối danh sách – tức là có mức ưu tiên priority thấp nhất. Process này sẽdịch chuyển dần lên phía đầu list bởi vì các process trước nó dần dần được BXL phục vụ. Khi process nằm ởđầu list và BXL được giải phóng thì process này được BXL phục vụvà lúc đó xảy ra sựthay đổi trạng thái của process – chuyển từ trạng thái ready sang running. Việc trao quyền sửdụng BXL cho process đầu tiên trong danh sách các ready processes gọi là quá trình dispatching, điều đó được thực hiện bởi module chương trình nằm trong OS gọi là dispatcher. Quá trình đổi trạng thái đó có thểbiểu diễn bằng ký hiệu: dispatch(process name): ready  running Process đang sửdụng BXL được gọi là process đang được thực hiện Running BlockedReady Dispatch blocking waik up Over time H×nh 3.1 Đểngăn chặn trường hợp vô tình hoặc cốý độc quyền chiếm tài nguyên hệthống của process, hệđiều hành sinh ra một ngắt cứng đặc biệt – timer interrupt (ngắt thời gian), xác định khoảng thời gian lớn nhất mà một process được sửdụng BXL liên tục. Nếu nhưsau khoảng thời gian đó, process không tựgiải phóng BXL thì hệ thống sẽsinh ngắt, theo đó quyền điều khiển được chuyển lại cho HĐH. Lúc đ ó HĐH sẽchuyển process đang được thực hiện từtrạng thái running vềtrạng thái, đưa nó vào danh sách các ready process, sau đó đưa process đầu tiên trong danh sách (process có mức ưu tiên cao nhất) vào thực hiện (running state). Các sựbiến đổi này có thểbiểu diễn bằng hai thao tác: interval gone (process name): running  ready dispatch (process name) : ready  running Nếu nhưmột process đang sửdụng BXL (running state) trong quá trình hoạt động của mình thực hiện tác vụvàora (IO) thì nó sẽtựmình giải phóng BXL (tựmình chuyển vào trạng thái blocked đểchờtác vụvàora kết thúc). Sựchuyển trạng thái này có thểbiểu diễn: blocking (process name): running  blocked. Còn một quá trình thay đổi trạng thái cuối cùng, đó là khi kết thúc tác vụvàora (hay nói chung xảy ra một sựkiện mà blocked process đang chờ) lúc đ ó process chuyển từtrạng thái blocked sang trạng thái ready – sẵn sàng đểthực hiện tiếp. Quá trình này có thểbiểu diễn: waikup(npocess name): blocked  ready. Với 3 trạng thái cơbản trên, chúng ta có 4 khảnăng chuyển trạng thái của một process đó là: dispatch (process name): ready  running interval gone(process name): running  ready blocking (process name): running  blocked waikup (process name): blocked  ready Chú ý rằng trong 4 khảnăng trên, chỉcó khảnăng thứ3 là có thểsinh ra bởi chính chương trình người sửdụng, còn lại các khảnăng khác đều do các đối tượ ng khác ởbên ngoài process gây ra. 33..44 PPrroocceessss ccoonnttrrooll BBlloocckk ((PPCCBB))-- kkhhốốii đđiiềềuu kkhhiiểểnn ttiiếếnn ttrrììnnhh Đại diện cho một process trong HĐH là khối điều khiển process (PCB). PCB là một cấu trúc dữliệu chứa những thông tin quan trọng vềprocess và có thểkhác nhau trong các hệthống khác nhau, trong đó thường có:  trạng thái hiện tại của process  ID (identifier) duy nhất cho process  độưu tiên (priority) của process  thông tin vềbộnhớ  thông tin vềcác tài nguyên process đang sửdụng  vùng đểcho các thanh ghi PCB là đối tượng quan trọng, nhờnó HĐH có thểcó được toàn bộthông tin cơbản nhất vềmột process. Khi HĐH chuyển (switch) BXL từđang phục vụprocess này sang phục vụprocess khác, nó dùng vùng cho các thanh ghi trong PCB lư u thông tin giá trịcác thanh ghi của hệthống đểcó thểtiếp tục thực hiện process mỗi khi process đến lượt được sửdụng BXL. Tóm lại, PCB là đối tượng chính đại diện cho process đối với HĐH. Vì HĐH phải có khảnăng thực hiện các thao tác với các PCB khác nhau một cách nhanh chóng, trong nhiều hệthống có những thanh ghi đặc biệt luôn chỉtới PCB của running process. Và cũng có những lệnh cài đặt ngay trong phần cứng đểđảm bảo nhanh chóng ghi thông tin trạng thái vào PCB và tiếp theo là nhanh chóng đọc các thông tin đó. 33..55 CCáácc tthhaaoo ttáácc vvớớii pprroocceessss Hệthống điều khiển process cần có khảnăng thực hiện các thao tác với process, trong đó có:  tạo process (create)  huỷprocess (free, destroy)  thay đổi độưu tiên priority  dừng – block process  kích hoạt – waikup process  thực hiện process (dispatch) Quá trình tạo một process gồm nhiều thao tác nhỏ:  gán tên cho process  đưa tên process vào danh sách các process của hệthống  xác định mức ưu tiên priority ban đầu cho process  tạo, nạp thông tin PCB  phân chia tài nguyên khởi đầu cho process Một process có thểtạo ra process mới. Process đầu tiên là parent còn process mới được tạo ra là child process. Đểtạo process chỉcần một process tức là mỗi child process chỉcó một parent còn một parent có thểcó nhiều child. Các quan hệđó tạo ra kiến trúc process A H×nh 3.2 B C D FE Xoá một process là loại bỏnó khỏi hệthống. Khi đó các tài nguyên được phân chia cho process sẽđược giải phóng, trảlại cho HĐH, tên của process được xoá khỏi tất cảcác danh sách của hệthống, còn PCB cũng được giải phóng. Một suspended process (bịhoãn, dừng) là process không tiếp tục được thực hiện đến khi có một process khác kích hoạt nó. Suspending (tạm dừng) là một thao tác quan trọng được sửdụng trong nhiều hệthống với các cách cài đặt, thực hiện khác nhau. Suspending thường chỉdiễn ra trong khoảng thời gian ngắn. Ví dụHĐH phải suspend một sốprocess (không phải luôn là tất cả) trong thời gian ngắn khi hệ thống quá tải,.. Trong trường hợp process bịdừng trong thời gian dài hơ n thì các tài nguyên của nó phải được giải phóng trảlại cho HĐH. Việc một 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 của nó. Ví dụbộnhớcần được giải phóng ngay, còn thiết bịvào ra có thểvẫn thuộc quyền sửdụng process trong trường hợp process bịsuspend trong thời gian ngắn còn sẽđược giải phóng khi thời gian suspend dài hay không xác định. Quá trình activate – kích hoạt là thao tác chuẩn bịđểprocess có thểtiếp tục thực hiện từđúng trạng thái mà nó bịdừng trước đ ó. Quá trình huỷbỏmột process sẽkhá phức tạp nếu nó là parent process. Trong một sốhệthống thì các children process sẽtựđộng bịhuỷbỏtheo,...

Trang 1

GIÁO TRÌNH

KIẾN TRÚC HỆ ĐIỀU HÀNH

NHÀ XUẤT BẢN KHOA HỌC VÀ KỸ THUẬT

HÀ NỘI - 2010

Trang 2

Phần II

Chương 3 Khái niệ m Tiế n trình (Process)

3.1 Mởđ ầ u

3.2 Trạ ng thái củ a proce s

khác nhau

Trang 3

không có thứ tự vì blocked process sẽ được giải phóng (unblock) bởi các sự kiện

3.3 Sựchuyể n trạ ng thái củ a proces

Running

Blocked Ready

waik up Over time

H×nh 3.1

interval gone (process name): running  ready dispatch (process name) : ready  running

Trang 4

Nếu nhưmột process đang sử dụng BXL (running state) trong quá trình hoạt động

blocking (process name): running  blocked.

waikup(npocess name): blocked  ready.

dispatch (process name): ready  running interval gone(process name): running  ready blocking (process name): running  blocked waikup (process name): blocked  ready

ở bên ngoài process gây ra

3.4 Proces control Bloc (PCB) khố i đ iề u khiể n tiế n trình

 độ ưu tiên (priority) của process

Trang 5

Tóm lại, PCB là đối tượng chính đại diện cho process đối với HĐH Vì HĐH phải

tin đó

3.5 Các thao tác vớ i proces

 tạo process (create)

 huỷ process (free, destroy)

 thay đổi độ ưu tiên priority

 dừng – block process

 thực hiện process (dispatch)

 gán tên cho process

 phân chia tài nguyên khởi đầu cho process

A

H×nh 3.2

Trang 6

Xoá một process là loại bỏ nó khỏi hệ thống Khi đó các tài nguyên được phân chia

3.6 Suspending and Activ ting - dừ ng v kích hoạ t

hay không

Trang 7

Blocked Ready Dispatch

waik up Over

time

Ready

suspend suspendBlocked

Suspend Activate

Suspend

Suspend

Activate event terminated

ACTIVE STATE SUSPENDED STATE

suspend (process name): ready  suspended-ready

activate (process name): suspend-ready  ready

suspend (process name): blocked  suspend-blocked

activate (process name): suspended-blocked  blocked

Trang 8

suspending thường có mức ưu tiên cao và cần thực hiện ngay, do đó phần lớn các

suspended-ready:

Incommingevent (process name): suspended-blocked  suspended-ready

3.7 Xửlý ngắ t

3.7.1 Các dạng ngắt

giấy,

BXL

Trang 9

 Program check interrupt: ngắt sinh ra do lỗi hoạtđộng của chương trình ví

3.8.2 Context switching - Đổi ngữ cảnh

(context switching)

H×nh 3.5

SVC

I/O

External

Restart

Program check

Machine check

SVC

I/O

External

Restart

Program check

Machine check

current PSW

Trang 10

 new PSW của loại ngắt đó trở thành current PSW

mô hình trên

3.8 Hạ t nhân củ a OS

nhanh chóng

3.8.1 Các chức năng chính của kernel

Ngày đăng: 10/03/2024, 21:24

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

TÀI LIỆU LIÊN QUAN

w