- Arguments: mailbox name (tên hòm thư)
a. Đa Tiến Trình(multitasking)
- Lúc ban đầu, lập trình viên không có hệ điều hành mà giao tiếp trực tiếp với máy tính. Sao đó, lập trình viên xử lý tập tin batch đơn giản trên hệ điều hành hỗ trợ thực thi những tác vụ đơn lẻ. Ở các hệ thống Single-tasking, một khi tác vụ (process) được khởi động thì nó sẽ chạy hoàn tất trước khi tác vụ khác có thể được khởi động, ví dụ như hệ điều hành DOS.
- Để có thể thực thi một chương trình trên hệ điều hành single-tasking thường phải tốn nhiều thời gian chờ đợi cho những tác vụ có thời gian xử lý lâu như I/O, không phát huy tối đa khả năng CPU(vì phải chờ những tác vụ I/O). - Để giải quyết vấn đề người ta đưa ra hệ điều hành multitasking. Như vậy multitasking được định nghĩa là việc thi hành đồng thời 2 hay nhiều tác vụ trên một CPU.
- Nhiều tác vụ khởi động để chạy trên một CPU. Hệ điều hành có trách nhiệm chuyển đổi các tác vụ thực thi trên CPU. Cách thức hệ điều hành điều khiển thi hành đồng thời nhiều tác vụ bằng cách gán cho CPU một tác vụ ở một thời điểm xác định. Hệ điều hành multitasking tạo nên ảo giác thi hành đồng thời bằng cách chia thành nhiều múi thời gian(time-slice).
- Khi có nhiều tác vụ thi hành cùng một lúc, mỗi tác vụ được CPU phục vụ trong một số lượng múi thời gian nhất định. Như vậy thực sự trong một thời điểm CPU chỉ phục vụ cho một tác vụ duy nhất, nhưng khoảng thời gian chuyển xử lý giữa các tiến trình rất nhỏ nên ta có cảm giác chúng được thi hành đồng thời.
Ví dụ:
- Tiến trình ưu tiên cho một tác vụ chạy sau một khoảng thời gian thực thi tác vụ khác được gọi là chuyển đổi ngữ cảnh(context switching ).
- Các hệ điều hành multitasking có thể là ưu tiên (preemptive) hoặc không ưu tiên (nonpreemptive). Ở trường hợp hệ điều hành preemptive, ứng dụng không cần biết sự chuyển đổi giữa các tiến trình (sự chuyển đổi này được thi hành bởi hệ điều hành ), sự khác nhau giữa hệ điều hành preemptive và nonpreemptive: ở hệ điều hành nonpreemptive là ứng dụng có nhiệm vụ từ bỏ CPU. Dạng multitasking cũng được tham khảo đến như là cooperative multitasking. Các hệ điều hành như Netware và windows 3.x là nonpreemptive multitasking, còn các hệ điều hành khác như MVS, VMS, UNIX,MAC, NT, và OS/2 là các hệ điều hành preeptive multitasking thật sự.
- Các tác vụ và tiến trình là các khái niệm cơ bản của bất kì hệ điều hành nào. Hệ điều hành phải có chức năng tạo huỷ các tiến trình.