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

Thông tin cơ bản

Tiêu đề Hệ Điều Hành
Trường học Đại Học Khoa Học Tự Nhiên
Chuyên ngành Công Nghệ Thông Tin
Thể loại tiểu trình
Năm xuất bản 2011
Thành phố TpHCM
Định dạng
Số trang 10
Dung lượng 430,46 KB

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

Khoa CNTT

ĐH KHTN

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

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

Trang 4

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

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!

 Tiểu trình có thể ghi vào stack của tiểu trình khác

Trang 6

Tạo tiểu trình

thread_create()

Mã hàm thread_create()

PCBs TCBs

stacks new_thread_starts_here

PC

SP

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

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

Trang 8

Sơ đồ các trạng thái tiểu trình

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

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

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