1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Hệ thống máy tính: Chương 6 - TS. Trần Thị Minh Khoa

119 6 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

Nội dung

Bài giảng Hệ thống máy tính: Chương 6 Quản lý tiến trình, cung cấp cho người học những kiến thức như: Tiến trình (Process); Định thì (Lập lịch, Scheduling); Đồng bộ (Synchronization); Tiểu trình (Thread). Mời các bạn cùng tham khảo!

Chap6: QUẢN LÝ TIẾN TRÌNH (process management) GV: TS Trần Thị Minh Khoa ()(6t)     Tiến trình (Process) Định (Lập lịch, Scheduling) Đồng (Synchronization) Tiểu trình (Thread)   What is a Process? Process Control Block Process States  Suspended Processes Background Hệ thống máy máy tính = sưu tập tài nguyên phần cứng (processor, main memory, I/O modules, timer, disk drives, ) Chương trình ứng dụng: thi hành định, công việc Các ứng dụng không viết trực tiếp phần cứng máy tính OS: hoạt động trung gian người dung phần cứng máy tính, cung cấp giao diện máy ảo, tạo thuận tiện cho người dùng giao tiếp với phần cứng máy tính OS: quản lý, cung cấp tài nguyên (main memory, network interface, file systems,…) ứng dụng yêu cầu Process Tiến trình = xem tập tài nguyên dùng để chạy chương trình = chương trình thực thi = nội dung nhớ + nội dung ghi (+ trang thái I/O) Stack + nội dung ghi biểu diễn execution context thread of control Process Control Block (PCB) Trạng thái tiến trình lưu process control block (PCB) Được xem liệu phần liệu HĐH Tương tự đối tượng lớp Process Control Block (PCB)  Các thông tin tiến trình:        Trạng thái tiến trình Program counter CPU registers Thơng tin lập lịch CPU Thông tin liên quan nhớ Thông tin sổ sách: mã số tiến trình, số lượng CPU, thời gian sử dụng CPU,… Trạng thái I/O: danh sách file mở, danh sách thiết bị cấp cho tiến trình Process States   Trace: Truy vết Dispatcher: Điều phối Process States Sơ đồ trạng thái tiểu trình Context Switching (tt) Làm để thực context switch? Lưu trạng thái tiểu trình thời thực thi Chép ghi dùng vào thread control block Với máy dùng ghi, cần ghi tạm Trỏ tới vùng nhớ thread control block nơi ghi lưu vào Nạp trạng thái tiểu trình thực thi Chép giá trị ghi dùng lúc trước thread control block vào ghi Khi phải dùng context switching? Context Switching (tt) Khi xảy context switching? Khi HĐH định tiểu trình thực thi “đủ lâu” tiểu trình khác nên cấp CPU Nhớ lại HĐH lấy lại điều khiển CPU thực thi user mode? Khi tiểu trình thực tác vụ I/O cần dừng lại chờ xong tác vụ Đợi tiểu trình khác hồn thành Đồng tiểu trình: thảo luận vấn đề giảng sau Mã switching gọi nào? Tiểu trình người dùng  interrupt đồng hồ phần cứng thay đổi giá trị PC trỏ tới mã xử lý interrupt  lưu lại trạng thái tiểu trình  xử lý interrupt đồng hồ gọi  vơ hiệu hóa kiểm tra interrupt  kiểm tra liệu tiểu trình thời chạy “đủ chưa”  đủ, tạo asynchronous software trap (AST)  cho phép kiểm tra interrupt  thoát khỏi xử lý interrupt  thực phần mã nguồn “return-to-user ”  kiểm tra có AST không  không, nạp lại trạng thái tiểu trình người dùng trở lại thực thi tiểu trình này; có AST, gọi mã context switch Mã switching gọi nào? (tt) Tiểu trình người dùng  system call cho việc I/O  trạng thái tiểu trình lưu  Gọi mã HĐH thực thi cho system call  bắt đầu tác vụ I/O (gọi I/O driver)  đặt trạng thái tiểu trình waiting  chuyển TCB từ “hàng đợi thực thi” tới “hàng đợi chờ I/O”  gọi mã context switching Context Switching (tt) Khi tiểu trình bị chuyển ngồi, điều xảy với nó? Làm tìm để nạp lại sau đó? Đây cơng việc TCB Hệ thơng thường có: Một hàng đợi thực thi trỏ tới TCB tiểu trình sẳn sàng thực thi Mỗi thiết bị có hàng đợi riêng, lưu TCB tiểu trình chờ tác vụ I/O xong Khi tiểu trình bị chuyển ngồi interrupt, trạng thái sẳn sàng thực thi, nên TCB hàng đợi thực thi Khi tiểu trình bị chuyển ngồi chờ tác vụ I/O, TCB chuyển qua hàng đợi thiết bị Ready Queue hàng đợi thiết bị I/O Chuyển đổi tiểu trình khác tiến trình Làm để chuyển đổi tiểu trình thuộc tiến trình khác nhau? Caches, TLB, bảng trang, v.v.? Caches Địa vật lý: khơng có rắc rối ! Địa ảo: cache phải biết nhãn process xóa cache lần context switch TLB (Translation Lookaside Buffer ) Mỗi entry phải có nhãn process phải dọn TLB có context switch Bảng trang Dùng bảng trỏ trang (thanh ghi) phải nạp lại context switch Tiểu trình truyền tín hiệu Phải làm kernel muốn gửi tín hiệu đến tiến trình mà tiểu trình bị block? Khi có nhiều tiểu trình, kernel nên gửi tín hiệu đến tiểu trình nào? HĐH ghi vào process control block tín hiệu cần truyền Tín hiệu truyền tới tiểu trình phép thực thi, phần việc context switch Tổ chức tiểu trình Tiểu trình hệ thống (tiến trình nhỏ) Kernel hiểu nhiều chương trình thực thi Kernel quản lý tiểu trình Tiểu trình người dùng Là thư viện chứa mã nguồn để tạo tiểu trình, kết thúc, lập lịch chuyển đổi tiểu trình Kernel thấy chương trình thực thi khơng nhận biết hành động tiểu trình Có thể bị chèn vào Tiểu trình hệ thống vs tiểu trình người dùng Thuận lợi tiểu trình mức user: Thực thi: tốn (khơng u cầu bảo vệ vùng) Linh động: lập lịch cho ứng dụng cụ thể Giao tiếp: thư viện mức user giúp tiểu trình dễ dàng giao tiếp với thành phần khác Bất thuận lợi tiểu trình mức user: Nếu tiểu trình mức user bị block kernel, tồn tiến trình (tất tiểu trình tiến trình đó) bị blocked Khơng thể lợi dụng đặc tính đa tiến trình (kernel cấp CPU cho tiến trình) Tiểu trình hệ thống vs tiểu trình người dùng Mức user Mức kernel tiểu trình Điều phối tiểu trình user kernel tiến trình Điều phối tiến trình processor Tiểu trình Điều phối tiểu trình processor Điều phối tiến trình Tiểu trình hệ thống vs tiểu trình người dùng Khơng có lý để ta khơng có hai! Hầu hết HĐH ngày hỗ trợ tiểu trình mức kernel Tiểu trình mức người dùng sẳn có dạng thư viện liên kết Tiểu trình mức user Điều phối tiểu trình Tiểu trình Mức kernel Điều phối tiểu trình processor user kernel Điều phối tiến trình Tiểu trình vs Tiến trình Tại cần nhiều tiểu trình? Tại khơng thể dùng nhiều tiến trình để thay cho việc dùng nhiều tiểu trình? Bởi cần có khả chia sẻ vùng nhớ (và tài nguyên khác) tiến trình … Nhưng việc chia sẻ có sẳn – giảng sau Các tác vụ điều hành tiểu trình (tạo, kết thúc, lập lịch, v.v ) dể dàng thực so với tiến trình Là tiểu trình khơng cần thao tác liên quan đến tài nguyên phân phát cho tiến trình Liên lạc tiểu trình thơng qua chia sẻ nhớ, không cần can thiệp kernel Thời gian thực thi tiểu trình/tiến trình Tác vụ Tiểu trình mức user (s) Tiểu trình mức kernel (s) Tiến trình (s) Null fork 34 948 11,300 Signal-wait 37 441 1,840 ... phát CPU sau: P1 P2 P3 P1 P1 P1 P1 P1   10 14 18 22 26 30 Thời gian chờ p1=0 +6, p2= 4-1 , p3= 7-2 Thời gian chờ trung bình: (0 +6+ 3+5)/3=4 .66 seconds Round Robin (Phân phối xoay vịng)  CPU giải... tài nguyên lẫn (giả thiết không thật tất hệ thống, ngữ cảnh) Người điều phối làm trung gian công việc để cho tối ưu hóa việc thực thi hệ thống Ví dụ đa chương trình Process A start sec idle; input... P2=2 4-1 , P3=2 7-2 Thời gian chờ trung bình: (0+23+25)/3=16seconds FIFO (tt.) Giả sử tiến trình đến theo thứ tự P2 , P3 , P1 Gantt chart lập lịch sau: P2 P3 P1 Tiến trình 30 Thời gian chờ P1 = 6- 2;

Ngày đăng: 28/01/2022, 09:30