Hệ điều hành - Quy trình
Quá trình
Về cơ bản một tiến trình là một chương trình đang được thực thi. Việc thực hiện một quy trình phải tiến triển theo một cách tuần tự.
Quá trình được định nghĩa là một thực thể đại diện cho đơn vị công việc cơ bản được thực hiện trong hệ thống.
Nói một cách dễ hiểu, chúng ta viết các chương trình máy tính của mình trong một tệp văn bản và khi chúng ta thực thi chương trình này, nó sẽ trở thành một quá trình thực hiện tất cả các tác vụ được đề cập trong chương trình.
Khi một chương trình được tải vào bộ nhớ và nó trở thành một quá trình, nó có thể được chia thành bốn phần ─ ngăn xếp, đống, văn bản và dữ liệu. Hình ảnh sau đây cho thấy một bố cục đơn giản của một quy trình bên trong bộ nhớ chính:
SN | Thành phần & Mô tả |
---|---|
1 | Stack Tiến trình Stack chứa các dữ liệu tạm thời như tham số phương thức / hàm, địa chỉ trả về và các biến cục bộ. |
2 | Heap Đây là bộ nhớ được cấp phát động cho một tiến trình trong thời gian chạy của nó. |
3 | Text Điều này bao gồm hoạt động hiện tại được thể hiện bằng giá trị của Bộ đếm chương trình và nội dung của các thanh ghi của bộ xử lý. |
4 | Data Phần này chứa các biến toàn cục và biến tĩnh. |
Chương trình
Chương trình là một đoạn mã có thể là một dòng hoặc hàng triệu dòng. Một chương trình máy tính thường được viết bởi một lập trình viên máy tính bằng một ngôn ngữ lập trình. Ví dụ, đây là một chương trình đơn giản được viết bằng ngôn ngữ lập trình C.
#include <stdio.h>
int main() {
printf("Hello, World! \n");
return 0;
}
Chương trình máy tính là một tập hợp các lệnh thực hiện một tác vụ cụ thể khi được thực thi bởi máy tính. Khi chúng ta so sánh một chương trình với một quá trình, chúng ta có thể kết luận rằng một quá trình là một thể hiện động của một chương trình máy tính.
Một phần của chương trình máy tính thực hiện một tác vụ được xác định rõ ràng được gọi là algorithm. Tập hợp các chương trình máy tính, thư viện và dữ liệu liên quan được gọi làsoftware.
Quy trình vòng đời
Khi một tiến trình thực thi, nó sẽ chuyển qua các trạng thái khác nhau. Các giai đoạn này có thể khác nhau trong các hệ điều hành khác nhau và tên của các trạng thái này cũng không được tiêu chuẩn hóa.
Nói chung, một quá trình có thể có một trong năm trạng thái sau cùng một lúc.
SN | Trạng thái & Mô tả |
---|---|
1 | Start Đây là trạng thái ban đầu khi một tiến trình được bắt đầu / tạo lần đầu tiên. |
2 | Ready Quá trình này đang chờ được gán cho một bộ xử lý. Các tiến trình đã sẵn sàng đang chờ hệ điều hành cấp phát cho bộ xử lý để chúng có thể chạy. Quy trình có thể đi vào trạng thái này sau khiStart trạng thái hoặc trong khi chạy nó bởi nhưng bị gián đoạn bởi bộ lập lịch để gán CPU cho một số tiến trình khác. |
3 | Running Khi quá trình đã được bộ lập lịch hệ điều hành gán cho một bộ xử lý, trạng thái quá trình được đặt thành đang chạy và bộ xử lý thực hiện các lệnh của nó. |
4 | Waiting Quá trình chuyển sang trạng thái chờ nếu nó cần đợi tài nguyên, chẳng hạn như chờ người dùng nhập hoặc chờ tệp khả dụng. |
5 | Terminated or Exit Khi quá trình kết thúc quá trình thực thi, hoặc nó bị hệ điều hành kết thúc, nó sẽ được chuyển sang trạng thái kết thúc mà nó chờ được xóa khỏi bộ nhớ chính. |
Khối điều khiển quy trình (PCB)
Khối điều khiển quy trình là cấu trúc dữ liệu được Hệ điều hành duy trì cho mọi quy trình. PCB được xác định bởi một số nguyên quá trình ID (PID). PCB lưu giữ tất cả thông tin cần thiết để theo dõi quá trình như được liệt kê dưới đây trong bảng -
SN | Thông tin & Mô tả |
---|---|
1 | Process State Trạng thái hiện tại của tiến trình tức là nó đã sẵn sàng, đang chạy, đang chờ hay bất cứ điều gì. |
2 | Process privileges Điều này là bắt buộc để cho phép / không cho phép truy cập vào tài nguyên hệ thống. |
3 | Process ID Nhận dạng duy nhất cho mỗi tiến trình trong hệ điều hành. |
4 | Pointer Một con trỏ đến quy trình mẹ. |
5 | Program Counter Bộ đếm chương trình là một con trỏ đến địa chỉ của lệnh tiếp theo sẽ được thực thi cho quá trình này. |
6 | CPU registers Nhiều thanh ghi CPU khác nhau nơi tiến trình cần được lưu trữ để thực thi cho trạng thái đang chạy. |
7 | CPU Scheduling Information Mức độ ưu tiên của quy trình và thông tin lập lịch trình khác được yêu cầu để lập lịch trình. |
số 8 | Memory management information Điều này bao gồm thông tin của bảng trang, giới hạn bộ nhớ, bảng Phân đoạn tùy thuộc vào bộ nhớ được sử dụng bởi hệ điều hành. |
9 | Accounting information Điều này bao gồm số lượng CPU được sử dụng để thực hiện quy trình, giới hạn thời gian, ID thực thi, v.v. |
10 | IO status information Điều này bao gồm danh sách các thiết bị I / O được phân bổ cho quy trình. |
Kiến trúc của PCB hoàn toàn phụ thuộc vào Hệ điều hành và có thể chứa thông tin khác nhau trong các hệ điều hành khác nhau. Đây là sơ đồ đơn giản của PCB -
PCB được duy trì trong suốt quá trình trong suốt vòng đời của nó và sẽ bị xóa khi quá trình kết thúc.