1. Trang chủ
  2. » Luận Văn - Báo Cáo

TH 106: HỆ ĐIỀU HÀNH, 03-2011 KHOA CNTT ĐH KHTN

10 0 0
Tài liệu được quét OCR, nội dung có thể không chính xác

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Nội dung

Công Nghệ Thông Tin, it, phầm mềm, website, web, mobile app, trí tuệ nhân tạo, blockchain, AI, machine learning - Công Nghệ Thông Tin, it, phầm mềm, website, web, mobile app, trí tuệ nhân tạo, blockchain, AI, machine learning - Công nghệ thông tin 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: ABCBC 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 threadcreate() Mã hàm threadcreate() PCBs TCBs stacks newthr...

Trang 1

Tiểu trình

TH 106: Hệ Điều Hành, 03-2011Khoa CNTT

Trang 2

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 CLúc này PC trỏ tới vị trí nào đó trong C

Trang 3

Đ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ìnhMỗ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

Trang 5

Đ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!

Trang 7

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

Trang 9

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 thiChé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

Trang 10

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ày đăng: 09/03/2024, 07:39

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN