Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chi Minh I.3 Các trạng thái của process Mô hình hai trạng thái – running – not running, có thể được giữ trong hàng... Khoa Công Nghệ
Trang 1Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP
Hồ Chi Minh
Chương 2
KHÁI NiỆM QUÁ TRÌNH
Trang 2Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP
Trang 3Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP
Hồ Chi Minh
Nội dung
I Quá trình (Process)
II Định thời process(CPU scheduling)
III Các tác vụ trên process(tạo và kết thúc process)
IV Process hợp tác
(Cooperating Process)
V Giao tiếp liên process
Interprocess Communication (IPC)
Trang 4Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP
Hồ Chi Minh
I Khái niệm quá trình(process)
Os thực thi nhiều loại chương trinh khác nhau
• Batch system : thực hiện các job
• Time-sharing systems :thực hiện user programs or tasks
Các thuật ngữ Job và process là tương tự hau
Trang 5Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP
Hồ Chi Minh
Yêu cầu đối với Os
Trang 6Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP
Hồ Chi Minh
I.2 Process Control Block (PCB)
Mỗi process trong hệ thống được diễn tả bởi một PCB:
Trang 7Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP
Hồ Chi Minh
PCB
• Mỗi PCB
Trang 8Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP
Hồ Chi Minh
CÁC BƯỚC NẠP PROCESS VÀO BỘ NHỚ
Trang 9Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP
Hồ Chi Minh
Loader
Trang 10Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP
Hồ Chi Minh
I.3 Các trạng thái của process
Mô hình hai trạng thái
– running
– not running, có thể được giữ trong hàng
Trang 11Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP
Hồ Chi Minh
Mô hình 5 trạng thái (t.t)
Khi process thực thi nó có thể
thay đổi trạng thái (state)
• New: process được khởi tạo
• Running: process ở trong CPU
các lệnh đang được thực hiện
• Ready: process đang chờ đến
lượt để được thực thi.
• Blocked: process đang chờ
một sự khiện nào đó xuất hiện
• Exit: completed/error exit
Chỉ có 1 process ở running trên
mỗi procesor tại một thời điểm
Có nhiều process ờ ready và
blocked tại một thời điểm
Trang 12Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP
Hồ Chi Minh
Ví dụ về trạng thái của process
Trang 13Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP
Hồ Chi Minh
Các trạng thái của process(t.t)
Trang 14Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP
Hồ Chi Minh
Các trạng thái của process(t.t)
Trang 15Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP
Hồ Chi Minh
Các trạng thái của process(t.t)
Trang 16Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP
Hồ Chi Minh
Lưu đồ 7-trạng thái của process
Trang 17Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP
• Có nhiều process phải thực thi luân phiên nhau
• Cưc đại hiệu suất của CPU
– Time Sharing :
• Cho phép users tương tác khi program đang chạy
• Tối thiểu thời gian đáp ứng
Trang 18Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP
Hồ Chi Minh
Các hàng đợi định thời
Trang 19Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP
Hồ Chi Minh
Hàng đợi Ready & I/O Device
Trang 20Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP
Hồ Chi Minh
Định thời Process
Trang 21Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP
Hồ Chi Minh
Các bộ định thời(schedulers)
Trang 22Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP
Hồ Chi Minh
Các bộ định thời(t.t)
Trang 23Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP
Hồ Chi Minh
Chuyển ngữ cảnh (context switch) (CPU chuyển giữa các process)
Trang 24Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP
Hồ Chi Minh
Chuyển ngữ cảnh (t.t)
Trang 25Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP
Hồ Chi Minh
Các bước chuyển ngữ cảnh
Trang 26Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP
Hồ Chi Minh
Chuyển ngữ cảnh xẩy ra khi nào
Trang 27Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP
Hồ Chi Minh
Các ví dụ về Interrupt
Trang 28Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP
Hồ Chi Minh
Medium Term Scheduling
Trang 29Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP
Hồ Chi Minh
III Các tác vụ lên process
Các process trong hệ thống có thể được thực thi đồng thời và chúng phải được tạo và xóa một cách năng
động.
vì vậy Os phải cung cấp cơ cấu để tạo (process
creation) và kết thúc (process Termination)
Trang 30Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP
Hồ Chi Minh
III.1 Tạo process (process creation)
Trang 31Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP
Hồ Chi Minh
Mối quan hệ cha/con
Trang 32Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP
Hồ Chi Minh
Cây process trong UNIX
Trang 33Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP
Hồ Chi Minh
Mối quan hệ cha/con(t.t)
Trang 34Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP
Hồ Chi Minh
III.2 Kết thúc thực thi process
(process Termination)
Trang 35Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP
Hồ Chi Minh
Kết thúc thực thi process(t.t)
Trang 36Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP
Hồ Chi Minh
IV Các Process hợp tác
Process độc lập (Independent process):
• không thể tác động hay chịu tác động bởi sự thực hiện của process khác.
Process hợp tác (cooperating process):
• Có thể tác động hoặc chịu sự tác động bởi sự thực hiện của process khác.
• Vd: process này chia sẻ data với process kia
Trang 37Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP
Hồ Chi Minh
Các process hợp tác (tiếp)
Ưu điểm:
• Chia sẻ thông tin -information sharing
• Tăng tốc độ tính toán - computation speed-up
• Mô-dun hóa -Modularity
• Sự tiện lợi – converience (vd user cùng thực hiệ soạn thảo, in ấn, biên dịch song song).
Trang 38Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP
Hồ Chi Minh
Bài tóan Producer-Consumer
• Mô hình cho các process hợp tác, quá trình sản xuất (producer
process) tạo ra các thông tin để các quá trình tiêu thụ (consumer producer) sử dụng Sự trao đổi thông tin thực hiện qua buffer
– Unbounded-buffer: giả thiết kích thước buffer vô hạn
– Bounded-buffer: thừa nhận có một kích thước buferr cố định
– Producer và consumer phải được đồng bộ họat động
• Consumer không thể sử dụng một data mà producer chưa kịp tạo ra
– Producer không được tạo thêm sản phẩm khi buffer đã đầy (bounded buffer)
Hiện thực buffer
– Shared memory
– Interprocess communcation facility(IPC)
Trang 39Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP
Hồ Chi Minh
Ví dụ Shared Bounded-Buffer
Trang 40Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP
Hồ Chi Minh
Shared Bounded-Buffer(t.t)
Trang 41Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP
Khả năng IPC cung cấp 2 họat động:
• send(message):- kích thước của message cố định hoặc biến đổi
• receive(massage)
Nếu các quá trình P và Q muốn giao tiếp chúng cần phải:
• thiết lập một liên kết giao tiếp (communication link) giữa chúng
• trao đổi các message qua các họat động send/receive
Sự thực hiện của communication link
• physical (vd shared memory, hardware bus)
• logical (vd : logical properties)
Trang 42Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP
Hồ Chi Minh
Hiện thực IPC?
Trang 43Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP
Hồ Chi Minh
Direct Communication
Các quá trình phải xác định rõ tên của nhau:
• Send(P,message):- gửi 1 message tới quá trình P.
• Receiver(Q,message):- nhận 1 message từ quá trình Q
Các đặc tính của communication link:
• Các liên kết được thiết lập tự động
• Mối liên kết được gắn với duy nhất một cặp process giao tiếp với nhau.
• Giữa mỗi cặp process tồn tại duy nhất 1 liên kết
• Liên kết thường là 2 chiều (bi-directional) hoặc có thể có 2 liên kết một chiều (undirectional) P to Q, Q to P.
Trang 44Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP
Hồ Chi Minh
Indirect Communication
Các message được gửi và nhận từ các mailbox (còn được gọi là port)
• Mỗi mailbox có duy nhất một id
• Các process chỉ có thể giao tiếp nếu chúng chia sẻ một mailbox
Các đặc tính của communication link:
• Các liên kết được thiết lập chỉ khi nào process chia sẻ một mailbox
chung
• Một liên kết có thể được gắn với nhiều process
• Mỗi cặp process có thể chia sẻ một số communication link
• Liên kết có thể là 2 chiều hoặc 1 chiều
Trang 45Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP
Hồ Chi Minh
Indirect Communication (tiếp)
Các họat động
• Tạo/xóa một mailbox
• Send(A,message)- gửi 1 message tới mailbox A
• Receiver(A,message)- nhận 1 message từ mailbox A
Trang 46Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP
Hồ Chi Minh
Indirect Communication (tiếp)
Giải pháp:
• 1 liên kết được gắn tối đa 2 process
• Cho phép tại 1 thời điểm chỉ 1 process thực hiện
Trang 47Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP
Hồ Chi Minh
Sự đồng bộ hóa(Synchronization)
Message passing có thể là khóa (blocking) hoặc không khóa blocking).
(non- Blocking được coi là đồng bộ (synchronous)
• Blocking send: process gởi bị khóa đến khi message được nhận bởi process nhận hoặc bởi mailbox
• Blocking receive: process nhận/mailbox khóa đến khi nhận xong
message
Non-blocking: được coi là không đồng bộ (asynchronous)
• Non-blocking send: process-gửi gửi message rồi lại tiếp tục không quan tâm tới message có được nhận hay không
• Non-blocking receive: process-nhận /mailbox nhận message đúng hoặc
vô dụng
Trang 48Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP
Hồ Chi Minh
Bộ đệm(buffering)
Trang 49Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP
Hồ Chi Minh
Câu hỏi và bài tập
• Miêu tả sư khác nhau giữa các bộ định thời ngắn, trung gian và
dài.
• Miêu tả các hành động diễn ra chuyển ngữ cảnh giữa các quá
trình bởi “Kernel”