Tải bản đầy đủ (.pdf) (10 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.97 MB, 10 trang )

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ã 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


×