2.1.6.1. Khi khởi tạo tiến trỡnh
Trong quỏ trỡnh xử lý, một tiến trỡnh cú thể được khởi tạo; hoặc một tiến trỡnh khi đang hoạt động cú thể khởi tạo một hoặc một số tiến trỡnh mới bằng cỏch sử dụng lời gọi hệ thống tương ứng.
Hệ điều hành gỏn PID – định danh tiến trỡnh cho tiến trỡnh mới và đưa tiến trỡnh vào danh sỏch quản lý của hệ thống. Danh sỏch tiến trỡnh cú thể là ready list, suspend list, waiting list…, sao cho phự hợp với chiến lược điều phối tiến trỡnh hiện tại của bộ phận điều phối tiến trỡnh.
Hệ điều hành xỏc định độ ưu tiờn cho tiến trỡnh.
Hệ điều hành tạo PCB cho tiến trỡnh chứa cỏc thụng tin cần thiết như cỏc PID của tiến trỡnh cha (nếu cú), thụng tin trạng thỏi tiến trỡnh, thụng tin ngữ cảnh của processor (bộ đếm chương trỡnh và cỏc thanh ghi khỏc),..
Cung cấp đầy đủ cỏc tài nguyờn cần thiết nhất, trừ processor, để tiến trỡnh cú thể vào trạng thỏi ready được hoặc bắt đầu hoạt động được. Cấp phỏt khụng gian bộ nhớ cho tiến trỡnh. Ở đõy HĐH cần phải xỏc định được kớch thước của tiến trỡnh, bao gồm code, data và stack. Giỏ trị kớch thước này cú thể được gỏn mặc định dựa theo loại của tiến trỡnh hoặc được gỏn theo yờu cầu của người sử dụng khi cú một cụng việc (job) được tạo. Nếu một tiến trỡnh được sinh ra bởi một tiến trỡnh khỏc, thỡ tiến trỡnh cha cú thể chuyển kớch thước của nú đến hệ điều hành trong yờu cầu tạo tiến trỡnh.
Một tiến trỡnh kết thỳc khi: hoàn tất cụng việc; sử dụng BXL vượt quỏ thời hạn; sử dụng quỏ tài nguyờn quy định; khi bộ nhớ khụng đủ; khi vi phạm một số quy định; khi mắc một số lỗi về phộp toỏn; khi thiết bị ngoại vi bị lỗi; khi cỏc lệnh bị sai; khi cú tiến trỡnh khỏc cú quyền ưu tiờn cao hơn; khi cú dữ liệu sai và khi HĐH dừng một số tiến trỡnh.
Khi kết thỳc tiến trỡnh, HĐH thực hiện cỏc cụng việc sau: - Thu hồi cỏc tài nguyờn hệ thống đó cấp phỏt cho tiến trỡnh. - Hủy bỏ tiến trỡnh ra khỏi danh sỏch quản lý của hệ thống. - Huỷ bỏ khối điều khiển tiến trỡnh.
Hầu hết cỏc HĐH đều khụng cho phộp tiến trỡnh con hoạt động khi tiến trỡnh cha đó kết thỳc. Trong những trường hợp như thế HĐH sẽ chủ động việc kết thỳc tiến trỡnh con khi tiến trỡnh cha vừa kết thỳc.
2.1.6.3. Khi thay đổi trạng thỏi tiến trỡnh
Khi một tiến trỡnh đang ở trạng thỏi running bị chuyển sang trạng thỏi khỏc (ready, blocked, …) thỡ HĐH phải tạo ra sự thay đổi trong mụi trường làm việc của nú.
Lưu (save) ngữ cảnh của processor, bao gồm thanh ghi bộ đếm chương trỡnh (PC: program counter) và cỏc thanh ghi khỏc.
Cập nhật PCB của tiến trỡnh, sao cho phự hợp với trạng thỏi mới của tiến trỡnh, bao gồm trạng thỏi mới của tiến trỡnh, cỏc thụng tin tớnh toỏn,…
Di chuyển PCB của tiến trỡnh đến một hàng đợi thớch hợp, đế đỏp ứng được cỏc yờu cầu của cụng tỏc điều phối tiến trỡnh.
Chọn một tiến trỡnh khỏc để cho phộp nú thực hiện.
Cập nhật PCB của tiến trỡnh vừa được chọn thực hiện ở trờn, chủ yếu là thay đổi trạng thỏi của tiến trỡnh đến trạng thỏi running.
Cập nhật cỏc thụng tin liờn quan đến quản lý bộ nhớ. Bước này phụ thuộc vào cỏc yờu cầu chuyển đổi địa chỉ bộ nhớ đang được sử dụng.
Khụi phục (Restore) lại ngữ cảnh của processor và thay đổi giỏ trị của bộ đếm chương trỡnh và cỏc thanh ghi khỏc sao cho phự hợp với tiến trỡnh được chọn ở trờn, để tiến trỡnh này cú thể bắt đầu hoạt động được.
Như vậy, khi hệ điều hành chuyển một tiến trỡnh từ trạng thỏi running (đang chạy) sang một trạng thỏi nào đú (tạm dừng) thỡ HĐH phải lưu trữ cỏc thụng tin cần thiết, nhất là Program Count, để sau này HĐH cú thể cho tiến trỡnh tiếp tục hoạt động trở (tỏi kớch hoạt) lại được. Đồng thời HĐH phải chọn một tiến trỡnh nào đú đang ở trạng thỏi ready để cho tiến trỡnh này chạy (chuyển tiến trỡnh sang trạng thỏi running). Tại đõy, trong cỏc thao tỏc phải thực hiện, HĐH phải thực hiện việc thay đổi giỏ trị của PC, thay đổi ngữ cảnh processor, để PC chỉ đến địa chỉ của chỉ thị đầu tiờn của tiến trỡnh running mới này trong bộ nhớ. Đõy cũng chớnh là bản chất của việc thực hiện cỏc tiến trỡnh trong cỏc hệ thống uniprocessor.