Mục tiêu chương 3 nhằm giúp các bạn hiểu được khái niệm và các trạng thái của tiến trình, biết được các thông số của tiến trình, biết được các khái niệm về định thời tiến trình, biết được các tác vụ cơ bản của một tiến trình, hiểu được cách giao tiếp giữa các tiến trình.
HỆ ĐIỀU HÀNH Chương Tiến trình 1/17/2018 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved Câu hỏi ôn tập chương Nêu thành phần hệ điều hành? Nêu dịch vụ mà hệ điều hành cung cấp? Lời gọi hệ thống gì? Nêu vài ví dụ? Có dạng cấu trúc hệ điều hành? Kể tên? Máy ảo dùng để làm gì? Có loại? Cho ví dụ Tiến trình gì? Các nhiệm vụ thành phần quản lý tiến trình? 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved Mục tiêu chương Hiểu khái niệm trạng thái tiến trình Biết thơng số tiến trình Biết khái niệm định thời tiến trình Biết tác vụ tiến trình Hiểu cách giao tiếp tiến trình 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved Nội dung chương Khái niệm Trạng thái tiến trình Khối điều khiển tiến trình Định thời tiến trình Các tác vụ tiến trình Sự cộng tác tiến trình Giao tiếp tiến trình Tiểu trình 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved Khái niệm Các hoạt động CPU gọi gì? Hệ thống bó (Batch system): jobs Time-shared systems: use program, task Các hoạt động tương tự → gọi process Tiến trình (process) gì? Một chương trình thực thi 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved Khái niệm (tt) Một tiến trình bao gồm: Text section (program code) Data section (chứa global variables) Program counter (PC) Process status word (PSW) Stack pointer (SP) Memory management registers 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved Khái niệm (tt) Các bước nạp chương trình vào nhớ: 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved Khái niệm (tt) Chương trình -> tiến trình: Dùng load module để biểu diễn chương trình thực thi Layout luận lý process image 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved Khái niệm (tt) Các bước khởi tạo tiến trình: Cấp phát định danh cho tiến trình Cấp phát khơng gian nhớ để nạp tiến trình Khởi tạo khối liệu Process Control Block (PCB) cho tiến trình Thiết lập mối liên hệ cần thiết (ví dụ: PCB vào hàng đợi định thời, …) 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved Trạng thái tiến trình new: tiến trình vừa tạo ready: tiến trình có đủ tài nguyên, cần CPU running: lệnh tiến trình thực thi waiting: blocked, tiến trình đợi I/O hồn tất, tín hiệu terminated: tiến trình kết thúc 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved 10 Cộng tác tiến trình Trong tiến trình thực thi, tiến trình cộng tác (cooperate) để hồn thành cơng việc Các tiến trình cộng tác để Chia sẻ liệu (information sharing) Tăng tốc tính tốn (computational speedup) Nếu hệ thống có nhiều CPU, chia cơng việc tính tốn thành nhiều cơng việc tính tốn nhỏ chạy song song Thực công việc chung Xây dựng phần mềm phức tạp cách chia thành module/process hợp tác Sự cộng tác tiến trình yêu cầu hệ điều hành hỗ trợ chế giao tiếp chế đồng hoạt động tiến trình 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved 30 Bài toán người sản xuất-người tiêu thụ Producer tạo liệu consumer tiêu thụ, sử dụng liệu Sự trao đổi thơng tin thực qua buffer unbounded buffer: kích thước buffer vơ hạn (khơng thực tế) bounded buffer: kích thước buffer có hạn Producer consumer phải hoạt động đồng Consumer khơng tiêu thụ producer chưa sản xuất Producer không tạo thêm sản phẩm buffer đầy 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved 31 Giao tiếp liên tiến trình IPC chế cung cấp hệ điều hành nhằm giúp tiến trình: Giao tiếp với Đồng hoạt động mà không cần chia sẻ không gian địa IPC cung cấp message passing system 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved 32 Hệ thống truyền thơng điệp Làm để tiến trình giao tiếp nhau? Đặt tên (Naming) Giao tiếp trực tiếp send(P, msg): gửi thơng điệp đến tiến trình P receive(Q, msg): nhận thơng điệp đến từ tiến trình Q Giao tiếp gián tiếp: thông qua mailbox hay port send(A, msg): gửi thông điệp đến mailbox A receive(Q, msg): nhận thông điệp từ mailbox B Đồng hóa (Synchronization): blocking send, nonblocking send, blocking receive, nonblocking receive 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved 33 Hệ thống truyền thông điệp (tt) Làm để tiến trình giao tiếp nhau? Tạo vùng đệm (Buffering): dùng queue để tạm chứa message Khả chứa (Zero capacity hay no buffering) Bounded capacity: độ dài queue giới hạn Unbounded capacity: độ dài queue không giới hạn 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved 34 Tiểu trình Tiểu trình: đơn vị sử dụng CPU gồm: Thread ID, PC, Registers, Stack chia sẻ chung code, data, resourses (files) 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved 35 PCB TCB mơ hình multithreads PCB pid Thread Control Block TCB Threads list Context tid (Mem, global ressources…) State Relatives Context ( Dad, children) (IP, local stack…) (State, details) Scheduling statistic 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved 36 Lợi ích tiến trình đa luồng Đáp ứng nhanh: cho phép chương trình tiếp tục thực thi phận bị khóa hoạt động dài Chia sẻ tài nguyên: tiết kiệm không gian nhớ Kinh tế: tạo chuyển ngữ cảnh nhanh tiến trình Ví dụ: Trong Solaris 2, tạo process chậm 30 lần, chuyển chậm lần so với thread Trong multiprocessor: thực song song 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved 37 Tiểu trình người dùng (User thread) T1 T2 LWP1 P1 T3 LWP2 P2 Kernel User mode Kernel mode Khái niệm tiểu trình hỗ trợ thư viện hoạt động user mode 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved 38 Tiểu trình hạt nhân (Kernel thread) T1 T2 User mode System call HDH Kernel mode Khái niệm tiểu trình xây dựng bên hạt nhân 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved 39 Tóm tắt lại nội dung buổi học Khái niệm Trạng thái tiến trình Khối điều khiển tiến trình Định thời tiến trình Các tác vụ tiến trình Sự cộng tác tiến trình Giao tiếp tiến trình Tiểu trình 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved 40 Câu hỏi ôn tập chương Nêu cụ thể trạng thái tiến trình? /* test.c */ int main(int argc, char** argv) { printf(“Hello world\n"); scanf(“ Nhập c = %d”,&c); exit(0); } 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved 41 Câu hỏi ôn tập chương (tt) Chương trình in chữ gì? 1/17/2018 #include #include int main (int argc, char *argv[]) { int pid; pid = fork(); printf(“ so 1”); printf(“ so 2”); fork(); if (pid < 0){ printf(“hello”); fork(); }else fork(); printf(“bye”); Copyrights 2017 CE-UIT All Rights Reserved } 42 Câu hỏi ôn tập chương (tt) Process control block chứa thơng tin gì? Các tác vụ tiến trình? Tại phải định thời, có loại định thời? 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved 43 THẢO LUẬN 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved 44 ...Câu hỏi ôn tập chương Nêu thành phần hệ điều hành? Nêu dịch vụ mà hệ điều hành cung cấp? Lời gọi hệ thống gì? Nêu vài ví dụ? Có dạng cấu trúc hệ điều hành? Kể tên? Máy ảo... quan trọng hệ điều hành PCB gồm: Trạng thái tiến trình: new, ready, running,… Bộ đếm chương trình Các ghi Thơng tin lập thời biểu CPU: độ ưu tiên, … Thông tin quản lý nhớ Thông tin: lượng... khác -> kết hợp hài hòa chúng 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved 20 Bộ định thời trung gian Đôi hệ điều hành (như time-sharing system) có thêm medium-term scheduling để điều