1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Nguyên lý hệ điều hành: Chương 3 - Phạm Quang Dũng

8 143 1

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Cấu trúc

  • BÀI GIẢNG NGUYÊN LÝ HỆ ĐIỀU HÀNH Chương 3: Tiến trình (Processes)

  • Nội dung chương 3

  • 3.1. Khái niệm tiến trình (process)

  • Tiến trình trong bộ nhớ

  • Các trạng thái tiến trình

  • Khối điều khiển tiến trình Process Control Block (PCB)

  • Process Control Block (PCB)

  • CPU chuyển giữa các tiến trình

  • 3.2. Lập lịch tiến trình (process scheduling)

  • Các queue lập lịch tiến trình

  • Sơ đồ lập lịch tiến trình

  • Các trình lập lịch - Schedulers

  • Các trình lập lịch (tiếp)

  • Chuyển ngữ cảnh - Context Switch

  • 3.3. Các hoạt động trên tiến trình

  • a) Sự tạo tiến trình - Process Creation

  • Sự tạo tiến trình (tiếp)

  • Các tiến trình trong UNIX

  • C Program Forking Separate Process

  • A tree of processes on a typical Solaris

  • b) Sự kết thúc tiến trình

  • 3.4. Các tiến trình hợp tác

  • Các tiến trình hợp tác (tiếp)

  • 3.5. Giao tiếp liên tiến trình Interprocess Communication (IPC)

  • Các mô hình giao tiếp

  • Giao tiếp trực tiếp

  • Giao tiếp gián tiếp

  • Giao tiếp gián tiếp (tiếp)

  • Giao tiếp gián tiếp (tiếp)

  • Sự đồng bộ hóa - Synchronization

  • Buffering

  • VD: Windows 2000/XP

p liên tiến trình Interprocess Communication (IPC)

  • Các mô hình giao tiếp

  • Giao tiếp trực tiếp

  • Giao tiếp gián tiếp

  • Giao tiếp gián tiếp (tiếp)

  • Giao tiếp gián tiếp (tiếp)

  • Sự đồng bộ hóa - Synchronization

  • Buffering

  • VD: Windows 2000/XP

  • Nội dung

    Bài 3 của bài giảng Nguyên lý hệ điều hành trang bị cho người học những hiểu biết về tiến trình (Processes). Các nội dung chính trong chương này gồm có: Khái niệm tiến trình, cập lịch tiến trình, các hoạt động trên tiến trình, các tiến trình hợp tác (Cooperating Processes), giao tiếp liên tiến trình (Interprocess Communication).

    Nội dung chương BÀI GIẢNG NGUYÊN LÝ HỆ ĐIỀU HÀNH „ Khái niệm tiến trình „ Lập lịch tiến trình Chương 3: Tiến trình (Processes) „ Các hoạt động tiến trình „ Các tiến trình hợp tác Phạm Quang Dũng Bộ mơn Khoa học máy tính Khoa Cơng nghệ thông tin Trường Đại học Nông nghiệp HN Website: fita.hua.edu.vn/pqdung (Cooperating Processes) „ Giao tiếp liên tiến trình (Interprocess Communication) Bài giảng Nguyên lý Hệ điều hành 3.1 Khái niệm tiến trình (process) 3.2 Phạm Quang Dũng ©2008 Tiến trình nhớ „ Một HĐH thực nhiều loại chương trình khác nhau: z Batch system: thực job z Time-shared system: thực user programs tasks „ Các thuật ngữ job process tương tự „ Process – chương trình thực hiện; thực tiến trình phải tiến triển theo kiểu „ Một tiến trình (process) bao gồm: z program counter - đếm chương trình z stack - ngăn xếp z data section - đoạn liệu Bài giảng Nguyên lý Hệ điều hành 3.3 Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành 3.4 Phạm Quang Dũng ©2008 Khố Khối điề điều khiể khiển tiế tiến trì trình Process Control Block (PCB) Các trạng thái tiến trình „ Mỗi tiến trình biểu diễn HĐH PCB Mỗi PCB chứa thơng tin gắn với tiến trình: z Trạng thái tiến trình z Bộ đếm chương trình „ Khi tiến trình thực hiện, thay đổi trạng thái (state) z Các ghi CPU z new: Tiến trình khởi tạo z Thơng tin lịch trình CPU z running: Tiến trình CPU Các lệnh thực z Thông tin quản lý nhớ z waiting: Tiến trình chờ kiện xuất z ready: Tiến trình chờ đến lượt thực CPU z Thông tin sử dụng CPU, thời gian, số hiệu tiến trình… z terminated: Tiến trình kết thúc Nó khơng biến tiến z Thông tin trạng thái vào/ra trình khác đọc trạng thái Bài giảng Nguyên lý Hệ điều hành 3.5 Phạm Quang Dũng ©2008 Process Control Block (PCB) Bài giảng Nguyên lý Hệ điều hành 3.7 Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành 3.6 Phạm Quang Dũng ©2008 CPU chuyển tiến trình Bài giảng Nguyên lý Hệ điều hành 3.8 Phạm Quang Dũng ©2008 3.2 Lậ Lập lị lịch tiế tiến trì trình (process scheduling) „ Mục tiêu multiprogramming có nhiều tiến trình chạy thời điểm để tối đa hóa sử dụng CPU „ Mục tiêu time-sharing chuyển CPU tiến trình thường xuyên tốt để người sử dụng tương tác với chương trình chạy „ Một HĐH đơn processor chạy tiến trình „ Nếu có nhiều tiến trình tồn tại, chúng phải đợi đến Các queue lập lịch tiến trình „ Job queue – tập hợp tất tiến trình hệ thống „ Ready queue – tập hợp tất tiến trình cư trú nhớ chính, sẵn sàng chờ thực z FIFO queue z Priority queue z Tree z Danh sách liên kết „ Device queues – tập hợp tiến trình chờ thiết bị vào/ra CPU rỗi lập lịch lại „ Tiến trình di trú queue khác Bài giảng Nguyên lý Hệ điều hành 3.9 Phạm Quang Dũng ©2008 Sơ đồ lập lịch tiến trình Bài giảng Nguyên lý Hệ điều hành 3.10 Phạm Quang Dũng ©2008 Các trình lập lịch - Schedulers „ Long-term scheduler (trình lập lịch dài kỳ) z gọi job scheduler z lựa chọn tiến trình nên đưa từ đĩa vào ready queue z sử dụng đến không thường xuyên (seconds, minutes) ⇒ may be slow z kiểm soát mức đa chương trình (degree of multiprogramming), vd: số tiến trình „ Short-term scheduler (trình lập lịch ngắn kỳ) z gọi CPU scheduler z lựa chọn tiến trình nên thực phân phối CPU cho z sử dụng đến thường xuyên (milliseconds) ⇒ must be fast Bài giảng Nguyên lý Hệ điều hành 3.11 Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành 3.12 Phạm Quang Dũng ©2008 Các trình lập lịch (tiếp) Chuyển ngữ cảnh - Context Switch „ Một số HĐH, HĐH chia sẻ thời gian, có thêm trình lập lịch trung kỳ (medium-term scheduler) „ Tư tưởng thực swapping (kỹ thuật hốn chuyển): z Đưa tiến trình khỏi nhớ cần thiết  Khi cân đối tiến trình tính tốn nhiều tiến trình vào/ra nhiều „ Các tiến trình mơ tả là: z I/O-bound process – sử dụng nhiều thời gian thực vào/ra việc tính tốn, nhiều lần chiếm dụng CPU ngắn Cần chuyển ngữ cảnh thường xuyên thời điểm bắt đầu kết thúc I/O z CPU-bound process – sử dụng nhiều thời gian cho việc tính tốn hơn;  Khi cần giải phóng nhớ cho việc khác lần chiếm dụng CPU dài Cũng cần chuyển ngữ cảnh thường xuyên để z Sau đưa tiến trình trở lại nhớ để thực tiếp tránh tr.hợp tiến trình ngăn chặn tiến trình khác sử dụng CPU „ Khi CPU chuyển tới tiến trình khác, hệ thống phải lưu trạng thái tiến trình trước nạp trạng thái lưu cho tiến trình „ Thời gian chuyển ngữ cảnh phụ thuộc vào hỗ trợ phần cứng „ Hệ thống thực cơng việc vơ ích chuyển (ngữ cảnh) Bài giảng Nguyên lý Hệ điều hành 3.13 Phạm Quang Dũng ©2008 3.3 Các hoạt động tiến trình Bài giảng Nguyên lý Hệ điều hành 3.14 Phạm Quang Dũng ©2008 a) Sự tạo tiến trình - Process Creation „ Tiến trình cha (parent process) tạo tiến trình (children „ Các tiến trình hệ thống thực đồng thời, chúng phải tạo (create) xóa processes), chúng tạo tiến trình khác tạo thành tiến trình (tree of processes) (delete) cách tự động „ Do HĐH phải cung cấp kỹ thuật tạo xóa tiến trình „ Tạo tiến trình cơng việc "nặng nhọc" phải phân phối nhớ tài nguyên Bài giảng Nguyên lý Hệ điều hành 3.15 Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành 3.16 Phạm Quang Dũng ©2008 Sự tạo tiến trình (tiếp) Các tiến trình UNIX „ Các lựa chọn chia sẻ tài nguyên (resource sharing) z Tiến trình cha chia sẻ tất tất tài nguyên z Tiến trình chia sẻ tập tài nguyên tiến trình cha z Tiến trình cha khơng có chia sẻ tài ngun „ fork - lệnh hệ thống tạo tiến trình „ exec - lệnh hệ thống sử dụng sau lệnh fork để thay không gian nhớ tiến trình chương trình „ Khơng gian địa (Address space) z Tiến trình chép tiến trình cha z Tiến trình có chương trình nạp vào „ Sự thực (execution) z Tiến trình cha thực đồng thời z Tiến trình cha đợi tiến trình kết thúc „ UNIX examples Bài giảng Nguyên lý Hệ điều hành 3.17 Phạm Quang Dũng ©2008 C Program Forking Separate Process Bài giảng Nguyên lý Hệ điều hành 3.18 Phạm Quang Dũng ©2008 A tree of processes on a typical Solaris int main() { pid_t pid; /* fork another process */ pid = fork(); if (pid < 0) { /* error occurred */ fprintf(stderr, "Fork Failed"); exit(-1); } else if (pid == 0) { /* child process */ execlp("/bin/ls", "ls", NULL); } else { /* parent process */ /* parent will wait for the child to complete */ wait (NULL); printf ("Child Complete"); exit(0); } } Bài giảng Nguyên lý Hệ điều hành 3.19 Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành 3.20 Phạm Quang Dũng ©2008 b) Sự kết thúc tiến trình 3.4 Các tiến trình hợp tác „ Tiến trình thực câu lệnh cuối yêu cầu HĐH tự kết thúc (exit) z Dữ liệu từ tiến trình đến tiến trình cha (qua lệnh wait) z Các tài nguyên tiến trình HĐH phân phối lại „ Tiến trình độc lập (Independent process): z khơng thể tác động hay chịu tác động thực tiến trình khác „ Tiến trình cha chấm dứt việc thực tiến trình (abort) z Tiến trình dùng tài nguyên phân phối „ Tiến trình hợp tác (Cooperating process): z tác động chịu tác động thực z Nhiệm vụ mà tiến trình thực khơng cần thiết z Tiến trình cha kết thúc HĐH lựa chọn:  Dừng tiến trình Xếp tầng chấm dứt (Cascading tiến trình khác z vd: tiến trình chia sẻ liệu với tiến trình khác termination): tiến trình cháu bị dừng,…  Tiến trình cháu tồn tiến trình ơng chấp nhận Bài giảng Ngun lý Hệ điều hành 3.21 Phạm Quang Dũng ©2008 Các tiến trình hợp tác (tiếp) „ Các lợi điểm tiến trình hợp tác z Chia sẻ thông tin - Information sharing z Tăng tốc độ tính tốn - Computation speed-up z Mơ-đun hóa - Modularity Phạm Quang Dũng ©2008 3.5 Giao tiếp liên tiến trình Interprocess Communication (IPC) động chúng mà chia sẻ không gian địa chung „ Khả IPC cung cấp hoạt động: z send (message)– kích thước message cố định biến đổi thảo, in ấn, biên dịch song song) z receive (message) „ Nếu tiến trình P Q muốn giao tiếp, chúng cần phải: „ Mơ hình tiến trình hợp tác: tiến trình sản xuất (producer process) tạo thơng tin để tiến trình tiêu thụ (consumer process) sử dụng z thiết lập liên kết giao tiếp (communication link) chúng z trao đổi message qua hoạt động send/receive „ Sự thực communication link z unbounded-buffer : giả thiết kích thước buffer vơ hạn z bounded-buffer : thừa nhận có kích thước buffer cố định 3.23 3.22 „ Là chế để tiến trình giao tiếp để đồng hành z Sự tiện lợi - Convenience (vd người sử dụng thực soạn Bài giảng Nguyên lý Hệ điều hành Bài giảng Nguyên lý Hệ điều hành Phạm Quang Dũng ©2008 z physical (vd: shared memory, hardware bus) z logical (vd: logical properties) Bài giảng Nguyên lý Hệ điều hành 3.24 Phạm Quang Dũng ©2008 Các mơ hình giao tiếp Giao tiếp trực tiếp „ Các tiến trình phải xác định rõ tên nhau: z send (P, message) – gửi message tới tiến trình P z receive (Q, message) – nhận message từ tiến trình Q „ Các đặc tính communication link: z Các liên kết thiết lập tự động z Mỗi liên kết gắn với cặp tiến trình giao tiếp với z Giữa cặp tiến trình tồn liên kết z Liên kết thường chiều (bi-directional), có liên kết chiều (unidirectional) P-to-Q, Q-to-P Bài giảng Nguyên lý Hệ điều hành 3.25 Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành Giao tiếp gián tiếp 3.26 Phạm Quang Dũng ©2008 Giao tiếp gián tiếp (tiếp) „ Các message gửi nhận từ mailbox (còn gọi port) „ Các hoạt động: z tạo/xố mailbox z Mỗi mailbox có id z send(A, message) – gửi message tới mailbox A z Các tiến trình giao tiếp chúng chia sẻ mailbox z receive(A, message) – nhận message từ mailbox A „ Vấn đề Mailbox sharing: „ Các đặc tính communication link: z Các liên kết thiết lập tiến trình chia sẻ mailbox chung z P1, P2, P3 chia sẻ mailbox A z P1, gửi; P2 P3 nhận z Tiến trình nhận message? z Một liên kết gắn với nhiều tiến trình z Mỗi cặp tiến trình chia sẻ số communication link z Liên kết chiều chiều Bài giảng Nguyên lý Hệ điều hành 3.27 Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành 3.28 Phạm Quang Dũng ©2008 Giao tiếp gián tiếp (tiếp) Sự đồng hóa - Synchronization „ Message passing có khóa (blocking) khơng „ Giải pháp: khóa (non-blocking) z Một liên kết gắn với tối đa tiến trình z Cho phép thời điểm tiến trình thực nhận „ Blocking coi đồng (synchronous) z Blocking send: tiến trình gửi bị khóa đến message message z Cho phép hệ thống tuỳ chọn tiến trình nhận Tiến trình gửi thơng báo tiến trình nhận message nhận tiến trình nhận mailbox z Blocking receive: tiến trình nhận/mailbox khóa đến nhận xong message z Các tiến trình khác nhận copy „ Non-blocking coi không đồng (asynchronous) z Nonblocking send: tiến trình gửi gửi message lại tiếp tục z Nonblocking receive: tiến trình nhận/mailbox nhận message vô dụng Bài giảng Nguyên lý Hệ điều hành 3.29 Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành Buffering 3.30 Phạm Quang Dũng ©2008 VD: Windows 2000/XP „ Hàng đợi message gắn vào liên kết „ Cung cấp hỗ trợ cho môi trường đa xử lý (subsystems) „ Các chương trình ứng dụng coi client thực ba cách: Zero capacity: queue có độ dài lớn Do đó, liên kết Windows 2000 subsystem server Chúng giao tiếp sử dụng kỹ thuật message-passing khơng thể có message chờ Tiến trình gửi phải „ Khả message-passing Windows 2000 gọi đợi tiến trình nhận Bounded capacity: queue có độ dài giới hạn n Khi message gửi, đưa vào queue queue chưa đầy, tiến trình gửi khơng phải đợi, ngược lại Unbounded capacity: queue có độ dài vơ hạn Tiến trình gửi khơng phải đợi LPC (local procedure call) LPC Windows 2000 cho phép giao tiếp tiến trình máy „ Mọi client gọi subsystem cần có kênh giao tiếp (connection port hay communication port) cung cấp port object „ Sử dụng kỹ thuật chuyển message qua cổng: z dùng message queue cổng: message ≤ 256 byte z dùng nhớ chia sẻ: dung lượng message lớn z dùng kỹ thuật callback: client/server đáp ứng Bài giảng Nguyên lý Hệ điều hành 3.31 Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành 3.32 Phạm Quang Dũng ©2008 ... thái Bài giảng Ngun lý Hệ điều hành 3. 5 Phạm Quang Dũng ©2008 Process Control Block (PCB) Bài giảng Nguyên lý Hệ điều hành 3. 7 Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành 3. 6 Phạm Quang. .. (bi-directional), có liên kết chiều (unidirectional) P-to-Q, Q-to-P Bài giảng Nguyên lý Hệ điều hành 3. 25 Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành Giao tiếp gián tiếp 3. 26 Phạm Quang. .. (ngữ cảnh) Bài giảng Nguyên lý Hệ điều hành 3. 13 Phạm Quang Dũng ©2008 3. 3 Các hoạt động tiến trình Bài giảng Nguyên lý Hệ điều hành 3. 14 Phạm Quang Dũng ©2008 a) Sự tạo tiến trình - Process Creation

    Ngày đăng: 30/01/2020, 05:25

    TỪ KHÓA LIÊN QUAN