Chương 2: Tiến trình và luồng Flashcards
Tiến trình là gì ?
Khi chương trình hoạt động , nó chuyển thành tiến trình
Hệ điều hành có chức năng
Điều phối việc thực hiện các tiến trình cũng
như phân phối tài nguyên cần thiết cho tiến trình
Một tiến trình gồm:
Mã nguồn chương trình (code) (không thay đổi) Data Program Counter Stack Register values
Trạng thái của tiến trình xác định bởi
Hoạt động của tiến trình tại thời điểm đó
Tiến trình có thể thay đổi do các nguyên nhân:
Phải dừng hoạt động do hết thời gian
Đợi I/O hoàn tất
Phải chờ một sự kiện xảy ra
Các trạng thái của tiến trình:
new: Tiến trình đang được tạo
running: Tiến trình đang chiếm hữu CPU & thực hiện các lệnh.
waiting: Tiến trình đang chờ cung được cấp tài nguyên hoặc chờ một sự kiện nào đó xuất hiện để chuyển sang trạng thái sẵn sàng.
ready: Tiến trình ở trạng thái sẵn sàng, được phân phổi đủ tài nguyên cần thiết, đang chờ đến lượt được thực hiện theo cơ chế lập lịch của hệ điều
hành.
terminated: Tiến trình kết thúc. Nó không biến mất cho đến khi một tiến trình khác đọc được trạng thái thoát của nó.
Tại một thời điểm, có bao nhiêu tiến trình ở trạng thái running
1
Tại một thời điểm có nhiều tiến trình ở trạng thái ready hay waiting
Có
Tiến trình được khở tạo, cung cấp đủ tài nguyên đi vào trạng thái nào
Running
Khi tiến trình đang thực hiện(running), nó có thể chuyển sang trạng thái:
Kết thúc(terminal) nếu thực hiện xong
Chờ(waiting) tiến trình yêu cầu một tài nguyên nhưng chưa được đáp ứng vì tài nguyên chưa sẵn sàng để cấp phát tại thời điểm đó ; hoặc tiến trình phải chờ một sự kiện hay thao tác nhập/xuất
Sẵn sàng(ready) khi xảy ra ngắt để chuyển CPU cho tiến trình có mức ưu tiên cao hơn. Bộ điều phối cấp phát cho tiến trình một khoảng thời gian sử dụng CPU hoặc hết thời gian chiếm hữu CPU
Tiến trình ở trạng thái chờ khi chuyển sang ready có đặc điểm gì:
Tài nguyên cung cấp đủ cho tiến trình
Sự kiện hoặc thao tác I/O tiến trình đang đợi hoàn tất
PCB là gì?
Là vùng nhớ lưu trữ các thông tin mô tả của tiến trình;
Mỗi tiến trình chỉ có một PCB
Cấu trúc PCB:
Process Id
Process state
Ngữ cảnh tiến trình: Mô tả các tài nguyên liên quan đến tiến trình
Trạng thái CPU: Con trỏ lệnh, CPU registers; được lưu trữ khi xảy ra ngắt
để có thể phục hồi trạng thái khi phục vụ ngắt xong
Thông tin lịch trình CPU - CPU scheduling information
Thông tin quản lý bộ nhớ: danh sách khối nhớ đang cấp cho tiến trình
Tài nguyên sử dụng: danh sách tài nguyên tiến trình đang sử dụng
Tài nguyên tạo lập: danh sách các tài nguyên mà tiến trình yêu cầu
Information Communicate: quan hệ giữa tiến trình này và tiến trình khác trong hệ thống
Statistic : Những thông tin về hoạt động tiến trình(tg thực hiện, tg chờ….)
Hệ điều hành căn cứ nội dung của PCB:
Phân phối và phân phối lại CPU
Giải phóng CPU ảo mà không phân phối lại
Trong chế độ đa chương trình, CPU phục vụ bao nhiêu chương trình trong một thời điểm
1
Trong chế độ đa chương trình, các chương trình còn lại được chạy bởi CPU logic ?
Đúng. Hay còn gọi là CPU ảo
CPU ảo là gì
Là CPU logic được phân phối cho toàn bộ tiến trình
Tốc độ CPU ảo nhanh hơn CPU thực
Sai
CPU chuyển giữa các tiến trình
Hai tiến trình P0 , P1 1, P0 executing then save state into PCB0 then P0 idle 2, Reload state from PCB1 3, Finish then executing P1 4, Save state into PCB1 5, Reload state from PCB0 then executing
Mục tiêu của multiprogramming:
Thực thi nhiều chương trình cùng một thời điểm để tối đa hoá sử dụng CPU
Mục tiêu của time-sharing
Luân chuyển giữa các tiến trình để giúp người dùng sử dụng nhiều chương trình khi nó đang chạy
Hệ điều hành sử dụng mấy danh sách để điều phối tiến trình
2
Waiting list có giải thuật lập lịch nào ko?
Không vì chúng yêu cầu loại tài nguyên khác nhau
Ready List có giải thuật lập lịch hay không
Có
Chọn ý sai cho reay list Lập lịch dài kì đưa từ ổ đĩa vào trong ready list May be slow Được sử dụng đến rất thường xuyên Được sử dụng đến rất không thường xuyên
C
Thao tác chủ yếu trên một tiến trình của hệ điều hành
create or new destroy or terminal suspend resume thay đổi độ ưu tiên tiến trình