1. Trang chủ
  2. » Giáo án - Bài giảng

Chương 2.1 cơ sở hệ điều hành

30 34 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

Định dạng
Số trang 30
Dung lượng 1,97 MB

Nội dung

1 Tiến Trình Luồng(thread) Điều phối CPU Tài nguyên găng đồng tiến trình Bế tắc xử lý bế tắc 1 Tiến trình (process)  1.1 Khái niệm tiến trình  1.2 Điều phối tiến trình  1.3 Thao tác tiến trình  1.4 Phân loại tiến trình  1.5 Liên lạc tiến trình 1.1 Khái niệm tiến trình  Chương trình (program) thực thể thụ động chứa đựng thị điều khiển máy tính (lệnh) thi hành tác vụ Chương trình cất đĩa dạng file  Khi chương trình nạp vào RAM CPU bắt đầu thi hành chương trình lúc chương trình trở thành tiến trình (process) 1.1 Khái niệm tiến trình  Ví dụ: Task manager 1.1 Khái niệm tiến trình  Là dãy thay đổi trạng thái hệ thống  Chuyển từ trạng thái sang trạng thái khác thực theo yêu cầu nằm chương trình người sử dụng  Xuất phát từ trạng thái ban đầu  Trạng thái hệ thống:  Vi xử lý: Giá trị ghi  Bộ nhớ: Nội dung ô nhớ  Thiết bị ngoại vi: Trạng thái thiết bị A S0 S1 B S2 S3 S4 S5 Sn-1 Sn Sn+1 1.1 Khái niệm tiến trình  Một chương trình có thể:  Được thực thi tiến trình khác nhau, với liệu khác  Gọi tới nhiều tiến trình  Tiến trình thực thể chủ động: đếm lệnh, tệp tài nguyên DỊCH VÀ THỰC THI MỘT CHƯƠNG TRÌNH DỊCH VÀ THỰC THI MỘT CHƯƠNG TRÌNH Hệ điều hành tạo tiến trình phân phối vùng nhớ cho Bộ thực (loader/exec)  Đọc dịch (interprets) file thực thi (header file)  Thiết lập khơng gian địa cho tiến trình để chứa mã lệnh liệu từ file thực thi  Đặt tham số dịng lệnh, biến mơi trường (argc, argv, envp) vào stack  Thiết lập ghi VXL tới giá trị thích hợp gọi hàm “_start()” (hàm hệ điều hành) Chương trình bắt đầu thực “_start()” Hàm gọi tới hàm main() (hàm chương trình) -> “Tiến trình” thực hiện, khơng cịn đề cập đến “ chương trình ” Khi hàm main() kết thúc, OS gọi tới hàm “_exit()” để hủy bỏ tiến tình thu hồi tài nguyên 1.1 Khái niệm tiến trình  Các trạng thái tiến trình New : Tiến trình tạo lập Ready : Tiến trình chờ cấp phát CPU để xử lý Running : Tiến trình xử lý Waiting : Tiến trình dừng thiếu tài nguyên hay chờ kiện Terminated : Tiến trình hồn thành  Chú ý: Tại thời điểm có TT trạng thái Running với VXL Trong có nhiều TT trạng thái Ready hay Waiting 10 1.1 Khái niệm tiến trình  Tiến trình đơn luồng: Là tiến trình thực luồng thực thi Có luồng câu lệnh thực thi -> Cho phép thực nhiệm vụ thời điểm  Tiến trình đa luồng : Là tiến trình có nhiều luồng thực thi -> cho phép thực nhiều nhiệm vụ thời điểm 16 1.2 Điều phối tiến trình Mục đích Sử dụng tối đa thời gian CPU -> Cần có nhiều tiến trình hệ thống Vấn đề Luân chuyển CPU tiến trình -> Phải có hàng đợi cho tiến trình Hệ thống processor -> Một tiến trình thực -> Các tiến trình khác phải đợi tới CPU tự 17 Các danh sách điều phối Hệ thống có nhiều hàng đợi dành cho tiến trình • Job-queue: Tập tiến trình hệ thống • Ready – queue: Tập tiến trình tồn nhớ, sẵn sàng chờ đợi để thực • Device queues tập tiến trình chờ đợi thiết bị vào Phân biệt hàng đợi cho thiết bị 18 Các danh sách điều phối  Mỗi tài nguyên có hàng đợi lưu danh sách tiến trình đợi tài nguyên  Khi Tiến trình tạo, PCB tiến trình chèn vào danh sách tác vụ (job list) Khi nhớ đủ chỗ, tiến tình danh sách tác vụ chọn, nạp từ đĩa vào nhớ PCB tiến trình chuyển sang danh sách sẵn sàng (ready list) Bộ điều phối chọn tiến trình danh sách sẵn sàng cấp CPU cho tiến trình Tiến trình cấp CPU thi hành chuyển sang danh sách chờ đợi (waiting list) xảy kiện, I/O  Tiến trình thi hành bị bắt buộc tạm dừng xử lý ngắt xảy ra, tiến trình đưa trở lại vào danh sách sẵn sàng để chờ cấp CPU cho lượt  HĐH sử dụng danh sách tác vụ, danh sách sẵn sàng tài nguyên ( thiết bị ngoại vi ) có danh sách chờ đợi riêng bao gồm tiến trình chờ cấp phát tài nguyên 19 Khi có yêu cầu tài nguyên mà chưa đáp ứng, tiến trình đưa vào hàng đợi tài ngun • Các tiến trình di chuyển hàng đợi khác • Tiến trình tạo, đặt hàng đợi sẵn sàng, đợi lựa chọn để thực 20 Các hàng đợi tiến trình • Tiến trình chọn thực Đưa yêu cầu vào ra: đợi hàng đợi thiết bị Tạo tiến trình đợi tiến trình kết thúc Hết thời gian sử dụng CPU, phải quay lại hàng đợi sẵn sàng • Trường hợp (1+ 2) sau kiện chờ đợi hồn thành • Tiến trình chuyển từ trạng thái đợi sang trạng thái sẵn sàng • Tiến trình quay lại hàng đợi sẵn sàng • Tiến trình tiếp tục chu kỳ ( sẵn sàng, thực hiện, chờ đợi) kết thúc • Xóa khỏi tất hàng đợi • PCB tài nguyên cấp giải phóng 21 Bộ điều phối Lựa chọn tiến trình hàng đợi • Điều phối cơng việc (Job scheduler; Long – term scheduler) • Điều phối CPU (CPU scheduler; short-term scheduler) • Swap tiến trình ( Medium – term scheduler) 22 Điều phối công việc • Chọn tiến trình từ hàng đợi tiến trình lưu vùng đệm (đĩa từ) đưa vào nhớ để thực • Thực khơng thường xun (đơn vị giây / phút) • Điều khiển mức độ đa chương trình (sơ tiến trình nhớ) • Khi mức độ đa chương trình ổn định, điều phối cơng việc gọi có tiến trình rời khỏi hệ thống • Vấn đề lựa chọn cơng việc ✓ Tiến trình thiên vào/ra: sử dụng thời gian CPU ✓ Tiến trình thiên tính tốn: sử dụng nhiều thời gian CPU ✓ Cần lựa chọn lẫn loại tiến trình -> TT vào ra: hàng đợi sẵn sàng rỗng, lãng phí CPU -> TT tính tốn: hàng đợi thiết bị rỗng, lãng phí thiết bị 24 Điều phối CPU • Lựa chọn tiến trình từ hàng đợi tiến tình sẵn sàng thực phân phối CPU cho • Được thực thường xun (VD: 100ms/lần) • Tiến trình thực vài ms thực vào • Lựa chọn tiến trình mới, sẵn sàng • Phải thực nhanh • 10ms để định -> 10/(110)=9% thời gian CPU lãng phí • Vấn đề luân chuyển CPU từ tiến trình tới tiến trình khác • Phải lưu trạng thái tiến trình cũ (PCB) khơi phục trạng thái cho tiến trình • Thời gian ln chuyển lãng phí • Có thể hỗ trợ phần cứng • Vấn đề lựa chọn tiến trình (điều phối CPU) 25 Swapping tiến trình (Medium-term scheduler) • Nhiệm vụ • Đưa tiến trình khỏi nhớ ( làm giảm mức độ đa chương trình) • Sau đưa tiến trình quay lại ( vị trí khác) tiếp tục thực • Mục đích: Giải phóng vùng nhớ, tạo vùng nhớ tự rộng 26 Chuyển ngữ cảnh (context switch) • Chuyển CPU từ tiến trình sang tiến trình khác ( hốn đổi tiến trình thực hiện) • Thực xuất tín hiệu ngắt ( ngắt thời gian) tiến trình đưa lời gọi hệ thống ( thực vào ra) • Lưu đồ chuyển CPU tiến trình 27 1.3 Thao tác tiến trình  Tạo tiến trình  Kết thúc tiến trình 28 Tạo tiến trình  Tiến trình tạo nhiều tiến trình hoạt động ( CreateProcess(), fork())  Tiến trình tạo: tiến trình cha  Tiến trình tạo: tiến trình  Tiến trình tạo tiến trình khác -> tiến trình  Vấn đề phân phối tài nguyên  Tiến trình lấy tài nguyên từ hệ điều hành  Tiến trình lấy tài nguyên từ tiến trình cha  Tất tài nguyên  Một phần tài nguyên tiến trình cha ( ngăn ngừa việc tạo nhiều tiến trình con)  Vấn đề thực  Tiến trình cha tiếp tục thực đồng thời với tiến trình  Tiến trình cha đợi tiến trình kết thúc 29 Tạo tiến trình 30 Kết thúc tiến trình • Hồn thành câu lệnh cuối u cầu HĐH xóa ( exit) • Gửi trả liệu tới tiến trình cha • Cá tài ngun cung cấp trả lại hệ thống • Tiến trình cha kết thúc thực tiến trình • Tiến trình cha phải biết định danh tiến trình -> tiến trình phải gửi định danh cho tiến trình cha khởi tạo • Sử dụng lời gọi hệ thống (abort) • Tiến trình cha kết thúc tiến trình • Tiến trình sử dụng vượt tài nguyên cấp • Nhiệm vụ cung cấp cho tiến trình khơng cịn cần thiết • Tiến trình cha kết thúc hệ điều hành khơng cho phép tiến trình tồn tiến trình cha kết thúc -> Cascading termination VD, kết thúc hệ thống 31 ... điều khiển máy tính (lệnh) thi hành tác vụ Chương trình cất đĩa dạng file  Khi chương trình nạp vào RAM CPU bắt đầu thi hành chương trình lúc chương trình trở thành tiến trình (process) 1.1 Khái... gọi hàm “_start()” (hàm hệ điều hành) Chương trình bắt đầu thực “_start()” Hàm gọi tới hàm main() (hàm chương trình) -> “Tiến trình” thực hiện, khơng cịn đề cập đến “ chương trình ” Khi hàm main()... chương trình (sơ tiến trình nhớ) • Khi mức độ đa chương trình ổn định, điều phối cơng việc gọi có tiến trình rời khỏi hệ thống • Vấn đề lựa chọn cơng việc ✓ Tiến trình thiên vào/ra: sử dụng thời

Ngày đăng: 20/12/2021, 14:50

TỪ KHÓA LIÊN QUAN

w