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

Một phần của tài liệu đặc điểm kiến trúc cơ bản của MARIE (a Machine Architecture that is Really Intuitive and Easy Đề cương môn cấu trúc và hệ điều hành (Trang 37)

- Nguyên tắc bảng tham số điều khiển Nguyên tắc bảng giá trị chuẩn:

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

Phân biệt theo 2 trạng thái: chạy và không chạy

=> Không phản ánh đầy đủ thông tin về trạng thái tiến trình 

=> Mô hình 5 trạng thái: mới khởi tạo, sẵn sàng, chạy, chờ 

• Mới khởi tạo: tiến trình đang được tạo ra

• Sẵn sàng: tiến trình chờ được cấp CPU để thực hiện lệnh của mình • Chạy: lệnh của tiến trình được CPU thực hiện

• Chờ đợi: tiến trình chờ đợi một sự kiện gì đó xảy ra (blocked)

• Kết thúc: tiến trình đã kết thúc việc thực hiện nhƣng vẫn chưa bị xóa

a. Sơ đồ chuyển đổi trạng thái của tiến trình

Tại một thời điểm, chỉ có một tiến trình được nhận trạng thái thực hiện trên một bộ nhớ xử lí bất kì. Trong khi đó, nhiều tiến trình có thể có trạng thái sẵn sàng hay chờ. Các đường chuyển tiếp trong sơ đồ trạng thái biểu diễn sáu sự chuyển trạng thái có thể xảy ra trong các điều kiện sau:

- Tiến trình được khởi tạo được đưa vào hệ thống

- Bộ điều khiển phối cấp cho phát triển tiến trình một khoảng thời gian sử dụng - Tiến trình kết thúc.

- Tiến trình yêu cầu một tài nguyên nhưng chưa đáp ứng vì tài nguyên chưa sẵn sàng để cấp phát tại điểm đó hoặc tiến trình phải chờ một sự kiện hay một thao tác vào ra.

- Bộ điều khiển phối chọn một tiến trình khác để cho 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 vào ra tiến trình đang hoàn tất

Câu 9: khái niệm bộ xử lý-shell ( trang 199)

Bộ xử lý là 1 cơ chế nào đó thực hiện các lệnh

Shell là 1 bộ phận hay 1 tiến trình đặc biệt của hệ điều hành, nó có nhiệm vụ nhận lệnh của người sử dụng, phân tích lệnh và phát sinh tiến trình mới để thực hiện yêu cầu của lệnh, tiến trình mới này được gọi là tiến trình đáp ứng nhu cầu.

Shell nhận lệnh thong qua cơ chế dòng lệnh, đó chính là nơi giao tiếp giữa người sử dụng và hệ điều hành, mỗi hđh khác nhau có cơ chế dòng lệnh khác nhau, với MS_DOS đó là con trỏ lệnh và dấu nhắc hệ điều hành (C:\>_), với win 9x đó là nhấn start chọn run….

Trong hệ điều hành đơn nhiệm (MS-DOS) khi tiến trình đáp ứng yêu cầu hoạt động thì Shell sẽ chuyển sang trạng thái chờ, để chờ cho đến khi tiến trình đáp ứng yêu cầu kết thức thì shell trở lại trạng thái sẵn sàng nhận lệnh mới

Trong môi trường hệ điều hành đa nhiệm (vd window 9x) sau khi phát sinh tiến trình đáp ứng yêu cầu và đưa nó vào trạng thái hoạt động thì Shell sẽ chuyển sang trạng thái sẵn sang nhận lệnh mới, giúp Shell có khả năng tạo nhiều tiến trình đáp ứng yêu cầu để nó hoạt động song song => người sử dụng có thể khởi tạo nhiều chương trình để hoạt động đồng thời

Hầu hết các ngôn ngữ lập trình đều hỗ trợ các công cụ để người sử dụng có thể gọi Shell ngay trong các ứng dụng của họ ( vd : trong window 9x khi 1 ứng dụng cần gọi thực hiện 1 chương trình nào đó thì nó gọi hàm Shell execut )

1 tiến trình được thực hiện bởi 1 bộ xử lý, như vậy bộ xử lý là nơi thực hiện các lệnh. Tùy theo bản chất của các lệnh mà bộ xử lý phải được thiết lập hoàn toàn từ phần cứng hay gồm tổ hợp giữa các phần cứng và phần mềm.

Vd: CPU+chương trình biên dịch BASIC tạo nên bộ xử lý để thực hiện các lệnh trong BASIC Các khái niệm về tiến trình và bộ xử lý phải thể hiện được tính đặc trưng đồng thời và đặc trưng vô định

Tính đồng thời là khả năng có thể thực hiện được nhiều chương trình trong 1 lúc ( vì số bộ xử lý thường ít hơn số lượng tiến trình ). Tính đồng thời có thể đạt được bằng cách chuyển bộ xử lý đang được dung cho 1 tiến trình này sang để dùng cho 1 tiến trình khác

Tính vô định : nếu xét tiến trình như 1 dãy các thao tác có thể bị ngắt thì tính vô định thể hiện ở sự không dự kiến trước được thời điểm xuất hiện của các ngắt cũng như ở sự không dự kiến trước được hậu quả của các ngắt. Khi có ngắt xuất hiện, thực hiện của tiến trình bị đình chỉ, bộ xử lý cất giữ các thong tin cần thiết về tiến trình rồi thực hiện xử lý ngắt

Tóm lại 1 tiến trình là 1 dãy các thao tác xét về mặt hiện tượng về cơ bản là động, trong khi 1 chương trình là 1 dẫy lệnh, nó là 1 tập hợp tĩnh. 1 bộ xử lý là 1 đơn vị thực hiện các tiến trình. Tính đồng thời và vô định có thể được mô tả ở sự chuyển mạch của bộ xử lý giữa các tiến trình và ở dạng ngắt giữa các thao tác.

Câu 10: Mục đích, chức năng và thành phần của nhân hệ diều hành (tr 202-204)

• Mục đích, chức năng và thành phần của nhân hệ diều hành

• KN: là những chương trình được xây dựng bởi người thiết kế máy tính, người sử dụng không thể thay đổi được.

• Mục đích: tạo ra 1 môi trường đón nhận cho các tiến trình

• Chức năng: điều khiển ngắt, phân chia bộ xử lí giữa các tiến trình và liên lạc giữa các tiến trình. • Thành phần: (adsbygoogle = window.adsbygoogle || []).push({});

• Chương trình mức đầu của ngắt đảm bảo việc khởi động các ngắt

• Chương trình lập biểu đảm nhận lập biểu phân phối các đơn vị trung tâm cho các tiến trình • Chương trình đảm bảo liên lạc đảm nhận việc liên lạc –móc nối giữa các tiến trình

Câu 11: Giới thiệu về chương trình mức đầu của Ngắt (204)

Ngắt có 2 nhiệm vụ:

- Xác định nguyên nhân ngắt: Chương trình ngắt bố trí một dãy các phép kiểm tra cho tất cả các nguyên nhân gây ra ngắt. Nguyên nhân nào thường xảy ra nhất thì sẽ được xếp trên cùng, ít xảy ra nhất xếp dưới cùng. Một số máy tính thì danh sách các nguyên nhân gây ra ngắt không nằm trong chương trình mà được thay thế bằng phần cứng. Một số HĐH thì thực hiện theo một thỏa hiệp giữa phần mềm và phần cứng là một nhóm các nguyên nhân ngắt cùng đặc tính của nó được kiểm tra bằng phần cứng còn tìm nguyên nhân ngắt cụ thể thì bằng chương trình - Trả lời cho ngắt: Để có thể trả lời cho ngắt thì chức năng này phụ thuộc vào kiểu của ngắt và các thủ tục xử lý sao cho phải thật ngăn sgonj bởi vì chúng được thực hiện trong một chế đọ chương trình giám sát bị cấm ngắt. Trong máy PC các ngắt có ý nghĩa quan trọng đối với phần mềm và phần cứng, Có 3 loại ngắt

o Ngắt mềm: Lệnh INT cùng số thứ tự ngắt. Các ngắt này cho phép gọi các chương trình tiếp theo của hệ điều hành. Ngắt mềm có thể được gọi bằng ngôn ngữ bậc cao, lúc đó nó phải được dịch ra hợp ngữ.

o Ngắt cứng: được sinh ra bởi các chíp điện tử trong PC hoặc thiết bị ngoại vi. Đó là một cơ cấu đơn giản và hiệu quả để CPU phản ứng một cách kịp thời với các yêu cầu ngắt.

o Ngắt ngoại lên: được sinh ra bởi chính CPU, nếu xuất hiện một ngoại lệ phải ngừng thực hiện chương trình, một ngắt mềm với số ngắt được CPU cung cấp sẽ được thi hành để ngắt.

Câu 12: Trình bày về chương trình lập biểu phân phối cho các hệ điều hành. (205)

- Chương trình lập biểu phân phối (Dispatcher) có nhiệm vụ phân phối đơn vị trung tâm (CPU) cho các tiến trình khác nhau trong hệ thống. Chương trình này quyết định chương trình nào được thi hành tiếp theo và biết khi nào thì kết thúc vào\ra.

Mục tiêu của chương trình lập biểu phân phối:

- Sự công bằng: Các tiến trình chia sẻ CPU 1 cách công bằng.

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

- Thời gian đáp ứng nhỏ nhất: Tối thiểu hóa thời gian hỏi đáp cho các tương tác của người sử dụng.

- Thời gian lưu lại hệ thống ngắn nhất: Bộ phận điều phối phải cực tiểu hóa thời gian trả lời của các tiến trình để tính tương tác của tiến trình tăng lên.

- Thông lượng tối đa: Chính sách điều phối phải cố gắng để cực đại được số lượng tiến trình hoàn thành trên 1 đơn vị thời gian.

Các đặc tính của tiến trình: Một số đặc tính của tiến trình cần quan tâm như là tiêu chuẩn để HĐH điều phối các hoạt động của tiến trình.

- Tình huống vào ra của tiến trình - Tình huống xử lý của tiến trình - Tiến trình tương tác hay xử lý theo lô - Độ ưu tiên của tiến trình

- Thời gian sử dụng CPU

- Thời gian còn lại tiến trình cần hoàn tất

Cơ chế lập biểu phân phối của HĐH: HĐH có thể thực hiện cơ chế lập biểu phân phối theo nguyên tắc độc quyền hoặc không độc quyền.

- Lập biểu phân phối độc quyền: cho phép tiến trình nhận được CPU sẽ độc quyền chiếm CPU cho đến khi xử lý xong hoặc tự nguyện giải phóng CPU. Xảy ra các tình huống:

o Running -> interrupt o Tiến trình kết thúc

=> Đơn giản, dễ cài đặt nhưng không thích hợp với hệ thống nhiều người dùng.

- Lập biểu phân phối không độc quyền: cho phép tạm dừng tạm dừng một tiến trình đang sẵn sàng xử lý. Xảy ra trong các trường hợp:

o Running -> blocked o Running -> Ready

o Chương trình con kết thúc

 Cơ chế phức tạp và phải có phương pháp đồng bộ hóa thích hợp.

Đồng hồ ngắt

HĐH sử dụng đồng hồ ngắt giờ và quy định một thông số thời gian thích hợp với lượt cấp phát CPU cho 1 tiến trình. (adsbygoogle = window.adsbygoogle || []).push({});

Cơ chế ngắt giờ cho phép thực hiện tương tác tự nhiên với nhiêu người dùng, ngăn chặn hệ thống bị quẩn trong 1 tiến trình của người dùng vì vòng lặp vô hạn.

Độ ưu tiên của tiến trình: Là 1 giá trị giúp phân định tầm quan trọng của tiến trìn để HĐH điều phối tiến trình 1 cách hợp lý.

- Các loại:

o Độ ưu tiên tĩnh: được gắn cho tiến trình và không thay đổi theo sự biến động của môi trường. o Độ ưu tiên động: thay đổi theo thời gian và môi trường xử lý của tiến trình.

Câu 13: Chương trình phải có cấu trúc như thế nào để hệ diều hành có thể nhận biết và xử lý được chúng. Ưu, nhược điểm của từng loại cấu trúc.( trang 215)

Chương trình có các loại cấu trúc sau: • Cấu trúc tuyến tính.

Các modun, thư viện được dịch thành 1 modun duy nhất chứa đầy đủ các thông tin để chương trình có thể hoạt động độc lập được. khi thực hiện chương trình HĐH nạp toàn bộ chương trình vào bộ nhớ.

Ưu điểm:

- Cấu trúc đơn giản, dễ viết, không yêu cầu sự hiểu biết cao của ng lập trình và có nhiều ngôn ngữ lập trình sử dụng cấu trúc này. Nó cho ra tệp tin thi hành có tính độc lập cao, có tốc độ thực hiện chương trình cao vì chỉ cần nạp 1 lần.

- Tính lưu động cao.

- Cho phép dịch chuyển và chạy đc giữa các hệ thống, dễ dàng thương mại hóa, bảo trì dễ dàng, thời gian thực hiện nhỏ nhất.

Nhược điểm:

- Tốn bộ nhớ do kích thước cua chương trình sẽ tăng lên sau khi biên dịch.

- Có những modun, những thư viện chỉ được chương trình sử dụng 1 lần nhưng lại chiếm bộ nhớ ngay từ đầu nạp vào và chỉ bị đưa ra khi kết thúc chương trình.

Cấu trúc động (dynamic structure)

Chương trình bao gồm 1 modunle chính và nhiều module khác ( có thể xem các thư viện được gọi trong chương trình cũng là các module của chương trình).

Các module chương trình được biên tập 1 cách riêng rẽ, khi thực hiện chương trình sẽ nạp module gốc vào sau đó vào trong bộ nhớ.

Ưu điểm: Tiết kiệm bộ nhớ

Nhược điểm:

- Thời gian thực hiện 1 chương trình lớn ( vừa thực hiện vừa tiến hành nạp, xóa,…) - Yêu cầu ng sử dụng phải nắm vững hệ thống.

- Kém lưu động, tốc độ thực hiện sẽ chậm hơn so với cấu trúc tuyến tính vì nó không đc nạp tất cả vòa bộ nhớ.

- Cần phải nhiều ngôn ngữ lập trình hỗ trợ. • Cấu trúc phủ lắp (overlay)

Các module chương trình được chia thành từng mức, module gốc được đưa vào mức 0 để nạp và định vị chương trình, mức 1 đc gọi từ module mức 0 và không cần tồn tại đồng thời, mức 2 được gọi từ mức 1 và không cần tồn tại đồng thời.

Bộ nhớ để dành để chứa chương trình được chia thành từng phần: - Số phần chính bằng số mức của cấu trúc chương trình.

- Mỗi phần chứa các module đông mức có kích thước đúng bằng kích thước của module lớn nhất đồng mức trong phần đó.

- Các module trong cùng 1 mức không cần có kích thước giống nhau.

Các thông tin phụ: số mức của chương trình, các module nằm trong từng mức, kích thước của các module được lưu vào tệp sơ đồ phủ lắp.

Khi thực hiện chương trình, hệ thống nạp module gốc vào mức 0, khi cần 1 module nào khác thì lại nạp nó vào mức tương ứng mức trong bộ nhớ. Nếu trong mức bộ nhớ tương ứng đã có 1 module nào khác thì đưa module ấy ra ngoài. Các module trong cùng 1 lớp k thể gọi lẫn nhau.

Ưu điểm: tiết kiệm được bô nhớ nhiều hơn so với cấu trúc động nếu các module có cấu trúc hợp lý.

Nhược điểm: (adsbygoogle = window.adsbygoogle || []).push({});

- Tốc độ chậm hơn cấu trúc đông.

- Có thể phải dành hiều bộ nhớ phần dành cho chương trình. - Không thể gắn cố định cấu trúc vào chương trình nguồn. - Phức tạp hơn với người sử dụng.

- Nếu tang kích thước của bộ nhớ vật lý thì hiệu quả vẫn k thay đổi. • Cấu trúc phân đoạn ( Segmentation)

Các module chương trình được biên dịch thành các module riêng rẽ như trong cấu trúc động và được gọi là đoạn (segmet) chương trình.

Bộ nhớ chia thành các k gian nhớ có kích thước k bằng nhau, tương ứng với kích thước của đoạn chương trình, được gọi là phân đoạn bộ nhớ.

Khi thực hiện các chương trình, HĐH có thể nạp tất cả các đoạn mã của chương trình vào tại các phân đoạn liên tiếp or k liên tiếp nhau trên bộ nhớ. Hệ điều hành cũng có thể nạp 1 vài đoạn cần thiết ban đầu vào bộ nhớ, sa đó nạp các đoạn tiếp theo nếu cần.

Hệ điều hành phải xây dựng các đoạn để biết địa chỉ cơ sở và độ dài của phân đoạn và thực hiện điều khuyển vào ra các đoạn vào bộ nhớ.

Ưu điểm :

- Không yêu cầu cao về người lập trình. - Tiết kiệm đc bộ nhớ.

- Thể hiện đc cách nhìn của ng lập trình về chương trình của họ.

Nhược điểm :

- Tốn thêm bộ nhớ để chứa bảng phân đoạn SCT của chương trình.

- Làm chậm tốc độ truy xuất dữ liệu trên bộ nhớ vì phải thông qua bảng điều khuyển đoạn SCT. • Cấu trúc phân trang (paging)

Các module chương trình được biên dịch thành 1 module duy nhất như trong cấu trúc tuyến tính, nhưng sau đó dduocj chia thành các phần có kích thước bằng nhau được gọi là các trang chương trình.

Bộ nhớ chia thành các phàn kích thước bằng nhau và bằng với kích thước các trang chương trình được gọi là các khung trang.

Khi thực hiện chương trình, HĐH có thể nạp tất cả các trang của chương trình vào tại các khung trng liên tiếp or k liên tiếp nhau trên bộ nhớ or nạp 1 vài trang cần thiết ban đầu vào bộ nhớ, sau đó nạp các trang tiếp theo nếu cần.

Các bảng điều khuyển trang cho biết được 1 trang đã đc nạp vào bộ nhớ hay chưa, nếu đã đc nạp vào rồi thì đc chứa ở khung trang nào. Trong quá trình điều khuyển chương trình HĐH dự vào bảng điều

khuyển tranh PCT để thực hiện các truy xuất và nạp thêm các đoạn mới vào bộ nhớ.

Một phần của tài liệu đặc điểm kiến trúc cơ bản của MARIE (a Machine Architecture that is Really Intuitive and Easy Đề cương môn cấu trúc và hệ điều hành (Trang 37)