Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 24 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
24
Dung lượng
745,8 KB
Nội dung
m/sinhvienzonevn 12 User thread (1/4) Một thư viện thread (thread library, run-time system) thực user space để hổ trợ tác vụ lên thread ● Thư viện thread cung cấp hàm khởi tạo, đònh thời quản lý thread thread_create thread_exit thread_wait thread_yield ● Thư viện thread dùng Thread Control Block (TCB) để lưu thông tin user thread (program counter, caùc register, stack) SinhVienZone.com https://fb.com/sinhvienzonevn 13 User thread (2/4) Cấu trúc liệu memory layout để thực user thread TCBs D Feitelson SinhVienZone.com https://fb.com/sinhvienzonevn 14 User thread (3/4) Kernel có mặt user thread ● Kernel biết PCB trình Ví dụ thư viện user thread ● POSIX Pthread SinhVienZone.com https://fb.com/sinhvienzonevn 15 User thread (4/4) Vấn đề: hệ điều hành cấp phát PCB cho process ( main/initial thread) ● Blocking problem: Khi moät thread trở nên blocked thread khác process không tiến triển user space thread library thread library thread library PCB PCB PCB SinhVienZone.com kernel space https://fb.com/sinhvienzonevn 16 Kernel thread (1/3) Khi kỹ thuật multithreading hệ điều hành trực tiếp hỗ trợ ● Kernel quản lý process thread – kernel thread ● Kernel thực việc đònh thời CPU cho thread trình SinhVienZone.com https://fb.com/sinhvienzonevn 17 Kernel thread (2/3) Khi multithreading hỗ trợ kernel ● Khởi tạo quản lý thread chậm so với user thread system call overhead chuyeån user mode kernel mode ● Tận dụng lợi kiến trúc multiprocessor ● Dù thread bò blocked, thread khác trình tiến triển Một số hệ thoáng multithreading ● Windows 9x/NT/200x ● Solaris ● Linux SinhVienZone.com https://fb.com/sinhvienzonevn 18 Kernel thread (3/3) Cấu trúc liệu memory layout để thực kernel thread TCBs D Feitelson SinhVienZone.com https://fb.com/sinhvienzonevn 19 Các mô hình thực thread Để thống ý niệm ‘user thread’ ‘kernel thread’ trình bày, ta dùng mô hình ‘X-to-X’ sau: ● Khái niệm ‘user(-level) multithreading’ dùng để multithreading user space ● User(-level) multithreading thực theo mô hình sau Mô hình many-to-one – tương ứng với ‘user thread’ cũ Mô hình one-to-one – tương ứng với ‘kernel thread’ cũ Mô hình many-to-many SinhVienZone.com https://fb.com/sinhvienzonevn 20 Mô hình many-to-one Nhiều user(-level) thread “chia sẻ” PCB để thực thi ● Việc quản lý thread thực thông qua hàm thread library gọi user level ● Blocking problem: Khi thread trở nên blocked thread khác process không tiến triển user space thread library TCB TCB TCB PCB kernel space Có thể thực hầu hết hệ điều hành SinhVienZone.com https://fb.com/sinhvienzonevn 21 Mô hình one-to-one Mỗi user thread hệ điều hành quản lý thông qua kernel TCB riêng user space ● Hệ điều hành phải cấp phát kernel TCB để tạo user thread Hệ điều hành phải cung cấp nhiều kernel TCB cho trình Ví dụ: Windows NT/2000 SinhVienZone.com PCB kernel space TCB TCB https://fb.com/sinhvienzonevn TCB 22 Mô hình many-to-many Gọi ‘many-to-few’ Nhiều user-level thread phân chia thực thi (multiplexed) thông qua số kernel TCB trình ● Kết hợp ưu điểm mô hình many-to-one one-to-one Ví dụ user space thread library kernel space PCB TCB TCB ● Solaris ● Windows NT/2000 với package ThreadFiber SinhVienZone.com https://fb.com/sinhvienzonevn 23 Pthread Chuẩn POSIX (IEEE 1003.1c) đặc tả API cho thủ tục tạo thread đồng thread Phổ biến hệ thống UNIX/Linux Là thư viện hỗ trợ user-level thread Tham khảo thêm ví dụ lập trình thư viện Pthread với ngôn ngữ C hệ thống Unix-like, trang 140, “Operating System Concepts”, Silberschatz et al, 6th Ed, 2003 Biên dòch thực thi chương trình multithreaded C Linux $ gcc source_file.c -lpthread –o output_file $ /output_file SinhVienZone.com https://fb.com/sinhvienzonevn 24 ... thực hầu hết hệ điều hành SinhVienZone. com https://fb .com/ sinhvienzonevn 21 Mô hình one-to-one Mỗi user thread hệ điều hành quản lý thông qua kernel TCB riêng user space ● Hệ điều hành phải... register, stack) SinhVienZone. com https://fb .com/ sinhvienzonevn 13 User thread (2/ 4) Caáu trúc liệu memory layout để thực user thread TCBs D Feitelson SinhVienZone. com https://fb .com/ sinhvienzonevn... tạo user thread Hệ điều hành phải cung cấp nhiều kernel TCB cho trình Ví duï: Windows NT /20 00 SinhVienZone. com PCB kernel space TCB TCB https://fb .com/ sinhvienzonevn TCB 22 Mô hình many-to-many