Quá trình là gì

Process là gì

by Admin


Đăng vào Fri Sep 01 2017



Những chiếc máy tính những năm đầu được chế tạo và phát triển chỉ cho phép một chương trình được chạy tại một thời điểm. Do vậy, chương trình đang chạy ấy có quyền điều khiển cả hệ thống, cũng như tất cả tài nguyên của chiếc máy tính. Sau đó, xuất hiện hệ thống cho phép nhiều chương trình cùng chạy. Dẫn tới việc cần phân rõ quyền điều khiển cũng như sự phân chia tài nguyên của hệ thống cho các chương trình đang chạy.

 

Từ đó xuất hiện khái niệm về quá trình (process). Quá trình là chương trình đang được thực thi, và cũng là một đơn vị vận hành trong những hệ thống máy tính hiện đại.

 

Định nghĩa

Những “công việc” mà hệ điều hành thực hiện gọi là quá trình, dù tên gọi chúng khác nhau tùy vào cấu trúc hệ điều hành (batch system hay time-shared system).

 

Nhắc lại về định nghĩa, một process là một chương trình đang được thực thi (đang chạy). Nhưng, một chương trình không phải là một process. Vì chương trình là một file, hay một folder bị động nằm trên máy; Trong khi đó, một process là một chương trình đang hoạt động (đang chạy, đã được tải lên bộ nhớ chính để hoạt động).

Một chương trình có thể có hai (hay nhiều) process đang chạy, nhưng chúng được coi là hai (hay nhiều) quá trình độc lập với nhau.

 

Hơn những thế, một process có thể là môi trường thực thi (execution environment) cho những dòng code khác. Ví dụ: các chương trình của Java cần được chạy trong Java Virtual Machine (JVM).

 

Các trạng thái của một process

  • New: process mới được tạo.
  • Running: process đang được thực thi/ chạy.
  • Waiting: process đợi I/O hoặc tín hiệu nào đó.
  • Ready: process sẵn sàng được CPU chạy.
  • Terminated: process hoàn thành việc.

Note: Những process của một chương trình cần phải tải lên bộ nhớ chính (cụ thể là RAM) trước khi được CPU nhận và thực hiện những yêu cầu của chương trình.

 

 

Các bước chuyển quá trình của process:

(1): Những process được chương trình tạo ra, được sắp vào “hàng chờ” (hay còn gọi là stack).

(2): Process được CPU thấy và thực thi.

(3): Khi process quá bự, CPU phải nhả để thực hiện process khác. (bạn có thể tìm hiểu các thuật toán xử lý process của CPU)

(4): Khi process đã được thực hiện xong.

(5): Khi process đang thực hiện và yêu cầu I/O hay các tín hiệu khác. (ví dụ bạn cần file word in ra, process sẽ phải nói cho CPU, CPU gửi tín hiệu cho máy in, máy in in ra rồi báo lại CPU. Trong thời gian đó, để tiết kiệm thời gian, process này sẽ được chuyển qua trạng thái chờ, cho process khác vào thực hiện)

(6): Sau khi I/O hay tín hiệu đã đến, process được sắp lại vào “hàng chờ”, chờ thực thi.

 

Process Control Block (PCB)

Mỗi process khi tạo ra sẽ được lưu thông tin tại một PCB tương ứng.

Những thông tin được chứa trong PCB:

  1. Trạng thái của process: 1 trong 5 trạng thái được liệt kê bên trên
  2. Bộ đếm (program counter): chứa địa chỉ (hay trong ngôn ngữ lập trình C, ta gọi nó là con trỏ/ pointer) đến lệnh cần thực thi tiếp theo
  3. Thanh ghi CPU: có kiểu khác nhau tùy vào kiến trúc máy tính
  4. Thông tin định thời CPU: độ ưu tiên của các process, quy định process nào thì thực thi trước
  5. Thông tin quản lý bộ nhớ: tùy hệ thống bộ nhớ của từng hệ điều hành
  6. Trạng thái của các tín hiệu I/O: danh sách các I/O được sử dụng bởi các process
  7. Thông tin về số lượng CPU, thời gian sử dụng thực tế, thời gian process được giữ CPU tối đa

 


Để lại bình luận:
Curious developer
Tech seeker
Search