Tiéu trinh
TH 106: Hệ Điều Hành, 03-2011
Khoa CNTT
DH KHTN
Tiéu trinh
Tiéu trinh: stack + registers (bao g6m PC) chuỗi
Nôm na: vị trí chuỗi lệnh hiện tại của chương trình và
các phương thức đang thực hiện tạo ra chi lệnh này
Ví dụ: A gọi B, B gọi C, €C gọi B, B gọi C
Luc nay PC tro toi vi tri nao do trong C
Stack phai chwa 5 activation records: A/B/C/B/C
DH KHTN TpHCM 2 TH 106: Hé Diéu Hanh
Đ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
mot thoi dié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é gitta cdc tiéu trinh sẽ được cấp
phat trong vung heap
DH KHTN TpHCM 3 TH 106: Hé Diéu Hanh
Xem lại khơng gian địa chỉ tiên trình
HDH HDH
Mã
Mã Vùng toàn cục
Vùng toàn cục Stack
Stack |
' Stack
Ì
Heap
Heap (b) K6 gian dia chi da tiéu trinh
(a) Kơ gian đchỉ I tiểu trình
TH 106: Hé Diéu Hanh
ĐH KHTN TpHCM
Đa tiểu trình (tt)
Cài đặt
Mỗi tiêu trình được mơ tả trong một /zead-eonfrol block (TCB)
Một TCB thông thường chứa
ID của Tiểu †rình
Không gian đẻ lưu các thanh ghi
Con tro Tới vị †rí xác dinh trong stack
Nhan xét
Mac dù môi tiêu trinh co stack riéng, cac tiéu trinh that ra chia sé khong
gian dia chi tién trinh
— 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
ĐH KHTN TpHCM 5 TH 106: Hệ Điều Hành
Tao tiéu trinh
PC Ma ham thread_create() <
SP PCBs
TCBs
—— Z
ĐH KHTN TpHCM 6 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
tinh chico | 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 qut bài tố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 thì
Việc chuyên thực thi từ một tiểu trình này sang tiêu trình khác
901 la context switching
DH KHTN TpHCM f TH 106: Hệ Điều Hành
Sơ đồ các trạng thái tiêu trình
admitted interrupt
I/O or event completion scheduler dispatch I/O or event wait
DH KHTN TpHCM 8 TH 106: Hé Diéu Hanh
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
Tro téi vung nhé trong thread control block noi cac 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 nao thi phai dung context switching?
DH KHTN TpHCM 9 TH 106: Hé Diéu Hanh
Context Switching (tt)
Khi nao xay 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 thuc thi
trong user mode?
Khi tiéu trinh thuc hién tac vu I/O va cân dừng lại chờ xong tác vụ này
Đợi tiểu trình khác hồn thành
Đông bộ Tiểu †rình: chúng †a sẽ thảo luận về vẫn đề này †rong vài bài
giảng Tới
ĐH KHTN TpHCM 10 TH 106: Hệ Điều Hành