Tìm hiểu về Process trong hệ điều hành

1325
07-07-2024
Tìm hiểu về Process trong hệ điều hành

Bạn đang sử dụng hệ điều hành hàng giây, hàng phút, hàng ngày. Vậy bạn đã hiểu rõ cụm từ cơ bản "Process" này chưa? Hãy cùng Bizfly Cloud tìm hiểu qua bài viết dưới đây nhé!

Process là gì? 

Theo định nghĩa thì process là chương trình đang thực thi. Process không chỉ là những đoạn text. Nó bao gồm các hoạt động hiện tại, được đại diện thông qua các giá trị của các bộ đếm chương trình và nội dung của các register. Ngoài ra 1 process bao gồm process stack để lưu các dữ liệu tạm và vùng dữ liệu, nơi chứa các biến toàn cục. Process có heap, là 1 bộ nhớ động hoạt động khi process đang chạy.

Process quan trọng như thế nào?

Process được đánh giá là quan trọng nhờ sở hữu các đặc điểm sau đây:

  • Tối ưu hóa hiệu quả: Quy trình được thiết kế và quản lý tốt sẽ giúp doanh nghiệp hoạt động trơn tru và hiệu quả hơn, giảm thiểu lãng phí về thời gian và tài nguyên.
  • Đảm bảo chất lượng: Quy trình chuẩn hóa giúp duy trì chất lượng sản phẩm hoặc dịch vụ ổn định, từ đó nâng cao sự hài lòng của khách hàng.
  • Giảm thiểu rủi ro: Khi quy trình được xác định rõ ràng và tuân thủ nghiêm ngặt, rủi ro trong hoạt động kinh doanh như lỗi sản xuất, sai sót trong dịch vụ hay mất mát dữ liệu sẽ được giảm thiểu.
  • Nâng cao khả năng cạnh tranh: Một doanh nghiệp có quy trình hoạt động hiệu quả sẽ có lợi thế cạnh tranh so với đối thủ, từ đó thu hút được nhiều khách hàng và tăng cường vị thế trên thị trường.
  • Tăng cường tính linh hoạt: Khi các quy trình được quản lý tốt, doanh nghiệp có khả năng thích ứng nhanh chóng với các thay đổi trong môi trường kinh doanh, từ đó giúp họ tồn tại và phát triển bền vững.
  • Quản lý và phát triển nhân viên: Quy trình rõ ràng giúp nhân viên hiểu rõ trách nhiệm của mình, từ đó nâng cao hiệu suất làm việc và phát triển kỹ năng.

Các loại Process

Process được chia ra làm 2 loại cơ bản sau đây:

1. CPU Bound

CPU-bound là các quá trình mà chủ yếu yêu cầu sử dụng thời gian xử lý của CPU. Các quá trình này thực hiện nhiều tính toán và ít truy cập vào các thiết bị ngoại vi (I/O). CPU-bound thường có tần suất tính toán cao với các phép toán phức tạp như mô phỏng khoa học, xử lý đồ họa và các thuật toán khác. Hiệu suất của các quá trình này chủ yếu phụ thuộc vào tốc độ và sức mạnh của CPU.

2. I/O Bound

I/O-bound là các quá trình mà chủ yếu yêu cầu truy cập và sử dụng các thiết bị ngoại vi như đĩa cứng, mạng, hoặc thiết bị đầu vào/đầu ra khác. Các quá trình này thực hiện nhiều thao tác đọc/ghi dữ liệu từ/đến các thiết bị ngoại vi. Chúng cần chờ đợi thiết bị ngoại vi hoàn thành các thao tác I/O, dẫn đến thời gian CPU rảnh rỗi. Hiệu suất của các quá trình này chủ yếu phụ thuộc vào tốc độ và khả năng xử lý của các thiết bị I/O.

Tìm hiểu về Process trong hệ điều hành - Ảnh 1.

Process trong hệ điều hành

Các trạng thái trong process

Khi 1 process chạy, nó thay đổi trạng thái. Trạng thái của process được định nghĩa là 1 phần của hoạt động hiện tại. Process sẽ có 1 trong những trạng thái sau:

  • New: Process được khởi tạo 
  • Running: các đoạn code được chạy
  • Waiting: Process đang đợi các sự kiện như I/O... 
  • Ready: Process đang đợi để được gán vào processor 
  • Terminated: Process kết thúc



Bản chất của Multitasking

Multitasking là khả năng của hệ thống máy tính thực hiện nhiều tác vụ cùng một lúc hoặc chuyển đổi giữa các tác vụ nhanh chóng để tạo cảm giác rằng các tác vụ này đang diễn ra đồng thời. Bản chất của multitasking đối với máy tính có thể được hiểu qua một số khía cạnh chính sau:

Time-sharing

Hệ điều hành phân chia thời gian CPU thành các khoảng thời gian nhỏ và phân bổ chúng cho các tác vụ khác nhau. Nó giúp CPU có thể xử lý nhiều tác vụ trong cùng một khoảng thời gian ngắn. Mỗi tác vụ được chạy trong một khoảng thời gian ngắn gọi là "time slice" hoặc "quantum." Khi thời gian này kết thúc, CPU sẽ chuyển sang xử lý tác vụ khác.

Preemptive Multitasking

Hệ điều hành có thể tạm dừng một tác vụ đang chạy để chuyển sang một tác vụ khác, đảm bảo rằng các tác vụ quan trọng hoặc có độ ưu tiên cao hơn có thể được thực thi kịp thời. Các hệ điều hành hiện đại như Windows, macOS và Linux đều sử dụng preemptive multitasking để quản lý các tác vụ.

Context Switching

Khi chuyển đổi giữa các tác vụ, hệ điều hành phải lưu trữ trạng thái hiện tại của tác vụ đang chạy như các thanh ghi, bộ đếm chương trình… và khôi phục trạng thái của tác vụ mới. Quá trình này thường diễn ra rất nhanh để giảm thiểu thời gian chết và tăng hiệu suất hệ thống.

Multithreading

Trong một tiến trình có thể có nhiều luồng (thread) thực thi đồng thời. Mỗi luồng có thể thực hiện một phần công việc khác nhau của cùng một tiến trình. Các luồng trong cùng một tiến trình chia sẻ tài nguyên (như bộ nhớ), giúp tối ưu hóa việc sử dụng tài nguyên hệ thống.

Symmetric Multiprocessing

Trong các hệ thống máy tính có nhiều CPU hoặc nhân xử lý (core), các tác vụ có thể được phân chia cho các CPU hoặc nhân này để thực thi đồng thời. SMP giúp tăng khả năng xử lý song song của hệ thống, cải thiện hiệu suất và khả năng đáp ứng.

I/O Bound vs. CPU Bound

Multitasking cũng giúp cân bằng giữa các tác vụ yêu cầu tài nguyên CPU nhiều (CPU-bound) và các tác vụ yêu cầu truy cập I/O (I/O-bound). Khi một tác vụ đang chờ I/O (như đọc/ghi từ đĩa), CPU có thể chuyển sang xử lý tác vụ khác.

Process Control Block

Mỗi process được biểu diễn trong hệ điều hành bởi các khối điều khiển process (process control block) (PCB).

Nó bao gồm các thông tin liên kết với các process nhất định bao gồm:

  • Process state: Trạng thái có thể là new, running, waiting, ready và terminated.
  • Program counter: bộ đếm xác định địa chỉ của các chỉ dẫn được thực hiện bởi process
  • CPU Registers: Các thanh ghi khác nhau về số lượng và loại , tùy thuộc vào kiến trúc của máy tính
  • CPU Scheduling information: Thông tin bao gồm các process ưu tiên
  • Memory - management information: Thông tin này bao gồm các mục như giá trị cơ sở, page tables, segment tables. 
 Process Control Block

Process Control Block

  • Accounting information: Thông tin bao gồm số lượng CPU và thời gian sử dụng...
  • I/O status information: Các thông tin về input output của thiết bị được lưu trữ trên process...

    >> Có thể bạn quan tâm: Phân biệt Thực tế ảo (VR) và Thực tế tăng cường (AR)

    Theo viblo.asia

    Bizfly Cloud là nhà cung cấp dịch vụ điện toán đám mây với chi phí thấp, được vận hành bởi VCCorp.

    Bizfly Cloud là một trong 4 doanh nghiệp nòng cốt trong "Chiến dịch thúc đẩy chuyển đổi số bằng công nghệ điện toán đám mây Việt Nam" của Bộ TT&TT; đáp ứng đầy đủ toàn bộ tiêu chí, chỉ tiêu kỹ thuật của nền tảng điện toán đám mây phục vụ Chính phủ điện tử/chính quyền điện tử.

    Độc giả quan tâm đến các giải pháp của Bizfly Cloud có thể truy cập tại đây.

    DÙNG THỬ MIỄN PHÍ và NHẬN ƯU ĐÃI 3 THÁNG tại: Manage.bizflycloud

SHARE