Tiểu trình: Hệ Điều Hành ppt

23 752 5
Tiểu trình: Hệ Điều Hành ppt

Đ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

Tiểu trình TH 106: Hệ Điều Hành, 03-2011 Khoa CNTT ĐH KHTN 2ĐH KHTN TpHCM TH 106: Hệ Điều Hành Tiểu trình Tiểu trình: stack + registers (bao gồm PC) Nôm na: vị trí chuỗi lệnh hiện tại của chương trình và chuỗi các phương thức đang thực hiện tạo ra chuỗi lệnh này Ví dụ: A gọi B, B gọi C, C gọi B, B gọi C Lúc này PC trỏ tới vị trí nào đó trong C Stack phải chứa 5 activation records: A/B/C/B/C 3ĐH KHTN TpHCM TH 106: Hệ Điều Hành Đa tiểu trình Tại sao cần tiểu trình? Một web server phải trả lời rất nhiều yêu cầu từ nhiều trình duyệt Nếu chỉ có một tiểu trình, thì chỉ xử lý được một yêu cầu tại một thời điểm Mô hình đa tiểu trình Mỗi tiến trình có thể có nhiều tiểu trình Mỗi tiểu trình có stack riêng Thanh ghi cũng dùng riêng Tất cả tiểu trình cùng một tiến trình chia sẻ mã và heap Các đối tượng được chia sẻ giữa các tiểu trình sẽ được cấp phát trong vùng heap 4ĐH KHTN TpHCM TH 106: Hệ Điều Hành Xem lại không gian địa chỉ tiến trình HĐH Mã Vùng toàn cục Stack Heap HĐH Mã Vùng toàn cục Stack Heap Stack (a) Kô gian đchỉ 1 tiểu trình (b) Kô gian địa chỉ đa tiểu trình 5ĐH KHTN TpHCM TH 106: Hệ Điều Hành Đa tiểu trình (tt) Cài đặt Mỗi tiểu trình được mô tả trong một thread-control block (TCB) Một TCB thông thường chứa ID của tiểu trình Không gian để lưu các thanh ghi Con trỏ tới vị trí xác định trong stack Nhận xét Mặc dù mỗi tiểu trình có stack riêng, các tiểu trình thật ra chia sẻ không gian địa chỉ tiến trình  Không có sự bảo vệ các vùng nhớ riêng!  Tiểu trình có thể ghi vào stack của tiểu trình khác 6ĐH KHTN TpHCM TH 106: Hệ Điều Hành Tạo tiểu trình thread_create() Mã hàm thread_create() PCBs TCBs stacks new_thread_starts_here PC SP 7ĐH KHTN TpHCM TH 106: Hệ Điều Hành Context Switching Giả sử một tiến trình có nhiều tiểu trình …nhưng … giả sử máy tính chỉ có 1 CPU… thì làm sao? Trong thực tế, ngay khi chỉ có 1 tiểu trình trong 1 tiến trình, chúng ta cũng phải giải quyết bài toán nhiều tiến trình … Chúng ta phải lập lịch nhiều tiểu trình với 1 CPU Tại một thời điểm bất kì, chỉ một tiểu trình được thực thi Có những thời điểm nào đó, HĐH có thể dừng tiểu trình này và cho phép tiểu trình khác thực thi Việc chuyển thực thi từ một tiểu trình này sang tiểu trình khác gọi là context switching 8ĐH KHTN TpHCM TH 106: Hệ Điều Hành Sơ đồ các trạng thái tiểu trình 9ĐH KHTN TpHCM TH 106: Hệ Điều Hành Context Switching (tt) Làm sao để thực hiện một context switch? Lưu trạng thái của tiểu trình hiện thời đang thực thi Chép các thanh ghi đang dùng vào thread control block Với các máy chỉ dùng thanh ghi, cần ít nhất 1 thanh ghi tạm Trỏ tới vùng nhớ trong thread control block nơi các thanh ghi được lưu vào Nạp trạng thái của tiểu trình sẽ thực thi kế tiếp Chép giá trị các thanh ghi đang dùng lúc trước trong thread control block vào các thanh ghi Khi nào thì phải dùng context switching? 10ĐH KHTN TpHCM TH 106: Hệ Điều Hành Context Switching (tt) Khi nào xảy ra context switching? Khi HĐH quyết định rằng một tiểu trình đã thực thi “đủ lâu” và tiểu trình khác nên được cấp CPU Nhớ lại làm sao HĐH lấy lại điều khiển CPU khi nó đang thực thi trong user mode? Khi tiểu trình thực hiện tác vụ I/O và cần dừng lại chờ xong tác vụ này Đợi tiểu trình khác hoàn thành Đồng bộ tiểu trình: chúng ta sẽ thảo luận về vấn đề này trong vài bài giảng tới [...]... 19 TH 106: Hệ Điều Hành Tiểu trình hệ thống vs tiểu trình người dùng Không có lý do gì để ta không có cả hai! Tiểu trình mức user Hầu hết HĐH ngày nay hỗ trợ tiểu trình mức kernel Điều phối tiểu trình Tiểu trình mức người dùng sẳn có dưới dạng các thư viện liên kết Tiểu trình Mức kernel Điều phối tiểu trình user kernel Điều phối tiến trình processor ĐH KHTN TpHCM 20 TH 106: Hệ Điều Hành Tiểu trình vs... tiểu trình của tiến trình đó) bị blocked Không thể lợi dụng đặc tính đa tiến trình (kernel chỉ cấp 1 CPU cho 1 tiến trình) ĐH KHTN TpHCM 18 TH 106: Hệ Điều Hà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ểu trình tiến trình Điều phối tiểu trình Điều phối tiến trình processor processor ĐH KHTN TpHCM Điều phối tiến trình 19 TH 106: Hệ. .. các tiểu trình thông qua chia sẻ bộ nhớ, không cần sự can thiệp của kernel ĐH KHTN TpHCM 21 TH 106: Hệ Điều Hành Thời gian thực thi tiểu trình/tiến trình Tác vụ Tiểu trình mức user Tiểu trình mức kernel (s) (s) Tiến trình (s) Null fork 34 948 11,300 Signal-wait 37 441 1,840 ĐH KHTN TpHCM 22 TH 106: Hệ Điều Hành Tuần tới Điều phối Đọc Silberschatz (CPU Scheduling) ĐH KHTN TpHCM 23 TH 106: Hệ Điều Hành. .. chèn vào ĐH KHTN TpHCM 17 TH 106: Hệ Điều Hành 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 tốn kém (không yêu cầu bảo vệ giữa các vùng) Linh động: có thể lập lịch cho từng ứ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 các thành phần khác Bất thuận lợi của tiểu trình ở mức user: Nếu 1 tiểu trình ở mức user bị block ở... KHTN TpHCM 16 TH 106: Hệ Điều Hành Tổ chức tiểu trình Tiểu trình hệ thống (tiến trình nhỏ) Kernel hiểu như nhiều chương trình đang thực thi Kernel quản lý các 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 và chuyển đổi giữa các tiểu trình Kernel thấy chỉ 1 chương trình đang thực thi và không nhận biết đó là hành động của một tiểu trình Có thể bị chèn... Hệ Điều Hành Tiểu trình và truyền tín hiệu Phải làm gì nếu kernel muốn gửi tín hiệu đến một tiến trình khi mà các tiểu trình của nó đều 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 được truyền Tín hiệu được truyền tới tiểu trình nào được phép thực thi, đó là một phần trong việc context switch ĐH KHTN TpHCM 16 TH 106: Hệ. .. TpHCM 12 TH 106: Hệ Điều Hành Context Switching (tt) Khi tiểu trình bị chuyển ra ngoài, điều gì xảy ra với nó? Làm sao chúng ta tìm ra nó để nạp lại sau đó? Đây là công việc của TCB Hệ thông thường sẽ có: Một hàng đợi thực thi trỏ tới TCB của các tiểu trình sẳn sàng thực thi Mỗi thiết bị có một hàng đợi riêng, nó lưu TCB của các tiểu trình đang chờ tác vụ I/O cho đến khi xong Khi một tiểu trình bị chuyển... thi, nên TCB của nó vẫn ở trên hàng đợi thực thi Khi một tiểu trình bị chuyển ra ngoài vì chờ tác vụ I/O, TCB của nó được chuyển qua hàng đợi của thiết bị đó ĐH KHTN TpHCM 13 TH 106: Hệ Điều Hành Ready Queue và các hàng đợi của thiết bị I/O ĐH KHTN TpHCM 14 TH 106: Hệ Điều Hành Chuyển đổi giữa các tiểu trình khác tiến trình Làm sao để chuyển đổi tiểu trình thuộc các tiến trình khác nhau? Caches, TLB,... nếu không, nạp lại trạng thái tiểu trình người dùng và trở lại thực thi tiểu trình này; nếu có AST, gọi mã context switch ĐH KHTN TpHCM 11 TH 106: Hệ Điều Hành Mã switching được gọi như thế 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 được 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... Tại sao cần nhiều tiểu trình? Tại sao chúng ta không thể dùng nhiều tiến trình để thay thế cho việc dùng nhiều tiểu trình? Bởi vì chúng ta cần có khả năng chia sẻ vùng nhớ (và các tài nguyên khác) giữa các tiến trình … Nhưng việc chia sẻ này đã có sẳn – bài 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 hiện hơn so với tiến trình Là bởi vì tiểu trình không cần . 106: Hệ Điều Hành Tiểu trình hệ thống vs. tiểu trình người dùng tiến trình processor Mức user Điều phối tiểu trình Điều phối tiến trình Mức kernel Điều phối tiểu trình kernel user processor tiểu. Tiểu trình TH 106: Hệ Điều Hành, 03-2011 Khoa CNTT ĐH KHTN 2ĐH KHTN TpHCM TH 106: Hệ Điều Hành Tiểu trình Tiểu trình: stack + registers (bao gồm PC) Nôm. thực thi từ một tiểu trình này sang tiểu trình khác gọi là context switching 8ĐH KHTN TpHCM TH 106: Hệ Điều Hành Sơ đồ các trạng thái tiểu trình 9ĐH KHTN TpHCM TH 106: Hệ Điều Hành Context Switching

Ngày đăng: 13/07/2014, 14:21

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan