Bài giảng môn Hệ điều hành: Chương 2 - TS. Nguyễn Văn Hiệp

pdf
Số trang Bài giảng môn Hệ điều hành: Chương 2 - TS. Nguyễn Văn Hiệp 14 Cỡ tệp Bài giảng môn Hệ điều hành: Chương 2 - TS. Nguyễn Văn Hiệp 377 KB Lượt tải Bài giảng môn Hệ điều hành: Chương 2 - TS. Nguyễn Văn Hiệp 0 Lượt đọc Bài giảng môn Hệ điều hành: Chương 2 - TS. Nguyễn Văn Hiệp 2
Đánh giá Bài giảng môn Hệ điều hành: Chương 2 - TS. Nguyễn Văn Hiệp
4.2 ( 15 lượt)
Nhấn vào bên dưới để tải tài liệu
Đang xem trước 10 trên tổng 14 trang, để tải xuống xem đầy đủ hãy nhấn vào bên trên
Chủ đề liên quan

Nội dung

MÔN HỆ ĐIỀU HÀNH Chương 2 QUẢN LÝ PROCESS & THREAD 1.1 Khái niệm process 1.2 Tạo, xóa process 1.3 Trạng thái process 1.4 Khái niệm thread 1.5 Lập lịch chạy các process 1.6 Các phương pháp lập lịch Tài liệu tham khảo : chương 2, sách "Modern Operating Systems", Andrew S. Tanenbaum: , 2nd ed, Prentice Hall Môn : Hệ điều hành Chương 2 : Quản lý process & thread Slide 1 Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM 2.1 Giới thiệu process ‰ ‰ ‰ Chương tr nh (program) = danh s ch c c lệnh để giải quyết một vấn đề n o đ , được cất tr n đĩa dưới dạng file. Khi chương tr nh được nạp v o RAM v CPU bắt đầu thi h nh chương tr nh ở điểm nhập th chương tr nh trở th nh process, CPU thực thi hết lệnh n y đến lệnh kh c từ tr n xuống hay theo sự điều khiển của lệnh đang thực thi. Process gồm 2 thành phần chính : danh sách các lệnh cấu thành thuật giải của chương trình và dữ liệu. Process tuần tự chỉ chứa 1 luồng thi h nh lệnh cho 1 chương tr nh từ điểm nhập đến điểm kết th c. Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Hệ điều hành Chương 2 : Quản lý process & thread Slide 2 1 Giới thiệu process Mỗi process có 1 vùng nhớ riêng, thường được chia thành các vùng thông tin khác nhau như sau : - Vùng code : chứa danh sách mã lệnh của chương trình. - Vùng static data : chứa các biến dữ liệu được khai báo tường minh trong chương trình. - Vùng dynamic data : chứa các vùng nhớ dữ liệu được cấp phát động (thông qua new, maloc…). Kích thước vùng này biến động theo thời gian. - Vùng stack : phục vụ cho việc gọi hàm trong chương trình. Kích thước vùng này biến động theo thời gian. Code Static data Dynamic data Stack Môn : Hệ điều hành Chương1 2: Tổng : Quản lý process & thread Chương quát về hệ điều hành Slide 3 Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Giới thiệu process (a) Góc nhìn vật lý : từng thời điểm CPU chỉ chạy 1 process. Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM (b) Góc nhìn user : 4 process đang chạy song hành. (c) đồ thị chạy của từng process theo thời gian. Môn : Hệ điều hành Chương 2 : Quản lý process & thread Slide 4 2 Giới thiệu process Trình lập lịch (Scheduler) là 1 module chức năng của HĐH, nó sẽ điều khiển việc chạy các process theo thời gian để thỏa mãn các tiêu chí xác định mà HĐH cần thực hiện. Môn : Hệ điều hành Chương 2 : Quản lý process & thread Slide 5 Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM 2.2 Tạo process Một process mới được tạo ra từ các sự kiện sau : 1. Do hệ thống tự tạo theo nhu cầu quản lý hệ thống (thường đây là các process hệ thống được tạo lúc khởi động HĐH). 2. Do người dùng kích hoạt chạy 1 phần mềm. 3. Do thuật giải của 1 phần mềm đang chạy, nó gọi dịch vụ CreateProcess để tạo process mới theo yêu cầu riêng. Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Hệ điều hành Chương 2 : Quản lý process & thread Slide 6 3 Xóa process Một process sẽ bị xóa từ các sự kiện sau : 1. Nội tại : 1. Khi chương trình chạy đến lệnh kết thúc bình thường của giải thuật. 2. Khi chương trình chạy đến lệnh gây lỗi mà người lập trình trù liệu. 3. Khi chương trình chạy đến lệnh gây lỗi mà người lập trình không trù liệu, trong trường hợp này hệ thống sẽ phát hiện lỗi và xóa process. 2. Bên ngoài : do process khác yêu cầu hệ thống giết. Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Hệ điều hành Chương 2 : Quản lý process & thread Slide 7 Cây phân cấp các process Miêu tả mối quan hệ “tạo mới” giữa các process : Một cây process (process tree) ƒ A đã tạo hai process con : B và C ƒ B đã tạo ba process con : D, E, và F Linux dùng khái niệm “process group” để quản lý cây process. Windows không quản lý cây process, mọi process đầu ngang cấp. Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Hệ điều hành Chương 2 : Quản lý process & thread Slide 8 4 2.3 Trạng thái process Theo thời gian hoạt động, process sẽ thay đổi trạng thái. Có 2 cấp độ trạng thái : ƒ Trạng thái vĩ mô : do HĐH đặt ra để quản lý process. ƒ Trạng thái vi mô : trạng thái chi tiết sau từng lệnh máy được thực thi. Thường có 3 trạng thái vĩ mô phổ biến : Running (đang chíếm CPU và chạy), Ready (chờ CPU để chạy), Blocked (bị giam vì chờ I/O). Các sự kiện gây ra chuyển trạng thái : 1. thực hiện I/O tốc độ chậm 2. Chạy hết khe thời gian 3. Được chọn để chạy khe thời gian kế. 4. I/O sẵn sàng phục vụ. Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Hệ điều hành Chương 2 : Quản lý process & thread Slide 9 Trạng thái vi mô của process Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Hệ điều hành Chương 2 : Quản lý process & thread Slide 10 5 Trạng thái vi mô của process ‰ ‰ ‰ ‰ Để quản lý trạng thái của từng process, HĐH sẽ dùng 1 record dữ liệu gồm nhiều field, mỗi field chứa 1 thông tin trạng thái mà HĐH muốn quản lý. Một field đặc biệt trong record quản lý là field chứa mã trạng thái vĩ mô của process tương ứng để HĐH biết process đang chạy hay đang Ready | Blocked. Các record quản lý của các process sẽ được hợp thành 1 bảng quản lý : bảng này rất quan trọng của HĐH Bảng quản lý trạng thái thường được hiện thực bằng danh sách liên kết để việc thêm/bớt từng record dễ dàng và hiệu quả (vì tần suất tạo/xóa process rất cao theo thời gian). Môn : Hệ điều hành Chương 2 : Quản lý process & thread Slide 11 Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM 2.4 Khái niệm Thread ‰ Process tuần tự chỉ chứa 1 luồng thi hành lệnh (Thread) cho 1 chương trình từ điểm nhập đến điểm kết thúc. Hình bên miêu tả 1 máy tính đang chạy 3 chương trình đồng thời, mỗi chương trình được viết bằng giải thuật tuần tự, nghĩa là chỉ chứa 1 thread. Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Hệ điều hành Chương 2 : Quản lý process & thread Slide 12 6 Process multi-thread Hình bên miêu tả 1 máy tính đang chạy 3 chương trình đồng thời, mỗi chương trình được viết bằng giải thuật song song gồm 3 tác vụ chạy đồng thời, mỗi tác vụ tương ứng với 1 thread độc lập. Tuy nhiên các thread của cùng 1 process đều truy xuất đến không gian làm việc của process => có thể gây ra tranh chấp và làm hư hỏng tài nguyên bị tranh chấp. Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Computer Process Thread Program counter của thread Môn : Hệ điều hành Chương 2 : Quản lý process & thread Slide 13 Khác biệt giữa gọi hàm và tạo thread mới Process mono-thread (chỉ chứa 1 luồng màu đỏ) Process multi-thread (chứa 1 luồng chính màu đỏ và 1 luồng con màu xanh) Hàm F1 F1(); CreateThread(F1,..); Hàm F1 Gởi sự kiện kết thúc Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Hệ điều hành Chương 2 : Quản lý process & thread Slide 14 7 2.5 Lập lịch cho các process chạy ƒ Dùng cơ chế phân chia thời gian (time-sharing) để chạy các process đồng thời trên 1 CPU. ƒ Dùng timer để tính khe thời gian. Mỗi lần hết khe hay process hiện hành chờ I/O, trình lập lịch sẽ thực hiện công việc “chuyển ngữ cảnh process” để dừng process hiện hành và cho phép process khác chạy. Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Hệ điều hành Chương 2 : Quản lý process & thread Slide 15 Lập lịch cho các process chạy Công việc “chuyển ngữ cảnh process” để dừng process hiện hành và cho phép process khác chạy gồm các bước chính yếu sau đây : 1. Dừng process hiện hành (P1) lại. 2. Cất trạng thái của P1 vào record quản lý tương ứng để dùng sau. 3. Chọn 1 process (P2) trong bảng process để chạy tiếp (theo các tiêu chí nào đó). 4. Phục hồi trạng thái của P2 từ record quản lý. 5. Kích hoạt timer đếm khe thời gian. 6. Cho P2 tiếp tục chạy từ vị trí ngừng trước đây. Công việc “chuyển ngữ cảnh process” là xác định, CPU có tốc độ càng cao thì thực hiện chuyển ngữ cảnh càng nhanh (càng tốt ít thời gian). Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Hệ điều hành Chương 2 : Quản lý process & thread Slide 16 8 Lập lịch cho các process chạy Độ lớn của khe thời gian được xác định bằng cách dùng hòa giữa 2 yêu cầu mâu thuẫn nhau : 1. Sao cho các ứng dụng chạy hiệu quả nhất : để được yêu cầu này, ta phải chọn khe càng lớn càng tốt để tỉ lệ thời gian process chạy thực sự/thời gian chuyển ngữ cảnh trong từng khe là lớn nhất. 2. Sao cho ứng dụng tương tác nhanh với người dùng để lừa họ rằng ứng dụng luôn luôn chạy (chứ không phải chạy cà giựt) : để được yêu cầu này, ta phải chọn khe càng nhỏ càng tốt để khoảng cách thời gian giữa 2 lần chạy liên tiếp của process là nhỏ nhất. Hiện nay, khe thời gian thường ở mức vài ms để 1 process có thể chạy nhiều lần (>20) trong 1 giây. Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Hệ điều hành Chương 2 : Quản lý process & thread Slide 17 2.6 Các phương pháp lập lịch cho các process Trong việc “chuyển ngữ cảnh process”, bước chọn 1 process trong bảng process để chạy tiếp cần được nói rõ thêm. Tùy theo các tiêu chí cần đạt được mà ta sẽ chọn phương pháp nào. Hiện người ta đã đề nghị nhiều phương pháp, nhưng mỗi phương pháp chỉ đáp ứng 1 vài tiêu chí cú thể. Sau đây chúng ta sẽ nghiên cứu 4 phương pháp điền hình : 1. Phương pháp Round-robin 2. Phương pháp dựa vào quyền ưu tiên 3. Phương pháp dùng nhiều hàng chờ quyền ưu tiên 4. Phương pháp cho process ngắn chạy trước. Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Hệ điều hành Chương 2 : Quản lý process & thread Slide 18 9 Phương pháp Round-robin Tiêu chí đạt được : xử lý các process theo tinh thần bình đẳng. Ý tưởng : - Dùng 1 hàng chờ trật tự (danh sách liên kết), process nào đến yêu cầu chạy trước được nằm trước, process nào yêu cầu sau phải nằm sau. - Khi hết khe thời gian mà vẫn cần chạy tiếp (thường là vậy), process phải quay về đuôi hàng chờ để được giải quyết cho lần chạy sau. Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Hệ điều hành Chương 2 : Quản lý process & thread Slide 19 Phương pháp Round-robin ‰ ‰ ‰ Tùy góc nhìn mà tiêu chí bình đẳng có đạt được không ? Theo góc nhìn toán học và lý thuyết thì phương pháp Roundrobin đạt được tiêu chí bình đẳng hầu như tuyệt đối. Tuy nhiên trong thực tế, vì yêu cầu dùng CPU để chạy giải thuật của từng process rất khác nhau, có process rất phức tạp chạy nhiều ngày mới xong, có process rất đơn giản chỉ cần vài giây, thậm chí vài ms là xong rồi nên phương pháp Round-robin trở nên rất bất bình đẳng thực tế. Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Hệ điều hành Chương 2 : Quản lý process & thread Slide 20 10
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.