- vừa được xem lúc

Process (Máy tính) và những điều có thể chưa biết - Phần I

0 0 161

Người đăng: Nguyen Viet

Theo Viblo Asia

Chào anh em một buổi sáng đầy năng lượng. Lý do mình viết bài chia sẻ này vì có 2 vấn đề mình thấy rất nhiều bạn gặp phải

  1. Các bạn thường hiểu sai về khái niệm process khi thảo luận những chủ đề liên quan đến xử lý trong lúc coding hoặc khi đọc các bài chia sẻ có nhắc tới Process...
  2. Một số trường hợp vì hiểu sai nên trong việc benchmark và tối ưu hệ thống thường gặp cản trở khi tìm nguyên nhân gây slow down

Nên thông qua bài viết này mình mong có thể giúp các bạn hiểu rõ hơn về Process, cách Process hoạt động cũng như việc ứng dụng Multi-Process như thế nào để tối ưu hoá application mà các bạn đang phát triển. Trong bài viết mình xin phép một số thuật ngữ mình sẽ không dịch ra tiếng Việt để tránh việc các bạn hiểu nhầm và dễ dàng hơn trong việc tìm hiểu các vấn đề khác có liên quan

Vậy thực ra Process là gì? Mình xin giải thích ngắn gọn: một Process trong máy tính của bạn chính là là một chương trình mà bạn đang chạy ví dụ browser bạn đang mở, trình nghe nhạc hoặc 1 game nào đó bạn đang chơi và các Process này được thực thi bởi một hoặc nhiều Thread. Một Process sẽ bao gồm mã chương trình (program code) và các hoạt động của nó. Tùy thuộc vào hệ điều hành (OS), một Process có thể được tạo từ nhiều Thread để thực thi các lệnh một cách đồng thời.

Khi các bạn phát triển một game hoặc ứng dụng nào đó thì một chương trình như vậy sẽ bao gồm các chỉ dẫn. Bản chất các chỉ dẫn này chính từ các dòng code thần thánh của anh em ?. Và khi chương trình đó chạy thì nó chính là 1 Process và cũng là việc thực thi các dòng code đó. Thường chúng ta có thể thấy một chương trình đang chạy sẽ tương ứng với một Process, nhưng một số chương trình có thể chạy nhiều Process. Ví dụ anh em có thể thấy như trong tấm hình ở trên sẽ có nhiều Process của trình duyệt Chrome đang chạy

Một Process sẽ bao gồm nhiều thành phần để cho phép nó thực thi các tác vụ (Task) cụ thể, bao gồm:

  • Stack là nơi để chứa các dữ liệu tạm thời ví dụ như params của method/function, local variables (biến cục bộ), địa chỉ trả về
  • Heap là bộ nhớ được cấp phát động cho Process trong thời gian chạy (runtime)
  • Text là nơi chứa thông tin các hoạt động hiện tại thể hiện bằng giá trị của bộ đếm chương trình (Program Counter) và nội dung các thanh ghi của bộ xử lý (Processor's Registers)
  • Data là nơi chứa các biến toàn cục (Global variable) và biến tĩnh (Static variable)

Trong bài viết tiếp theo mình sẽ đi tiếp với anh em để cùng tìm hiểu về khái niệm Multitasking (dịch ra là đa tác vụ ?) khi các chương trình cần được xử lý đồng thời thay vì xử lý tuần tự (kiểu như nghe nhạc thì chỉ nghe nhạc không code được và ngược lại). Have a nice day ?

Bình luận

Bài viết tương tự

- vừa được xem lúc

Lập trình và tư duy thuật toán sáng tạo (Kì 2) - Tóm lược kiến thức đại số tổ hợp

Trong phần đầu Lập trình và tư duy thuật toán sáng tạo (Kì 1) Mình đã giới thiệu về khái niệm, lý do bạn cần sử dụng thuật toán và những điều cơ bản đề giải quyết một bài toán. Và giờ thì chúng ta bắt đầu tìm hiểu xem thế giới "diệu kỳ" này có gì nhé.

0 0 174

- vừa được xem lúc

Process (Máy tính) và những điều có thể chưa biết - Phần II - Multitasking

Tiếp nối phần I mình đã tìm hiểu Process như thế nào, các component của 1 Process, và cách Process hoạt động. Phần tiếp theo này chúng ta cùng xem liệu Multitasking có phải là bến đỗ hạnh phúc khi muốn optimize thời gian chạy của 1 chương trình.

0 0 5.2k

- vừa được xem lúc

Tìm hiểu khái niệm Hash Table

Có lẽ khái niệm này cũng không quá xa lạ gì với các anh em Engineer và bản thân mình sau 2 năm đầu đi làm và lần đầu tiên nghe về khái niệm này cũng hiểu một cách rất là mơ hồ . Yeah và dĩ nhiên không để nỗi đau thêm dài (thật ra mình tò mò là chính) nên mình cũng tìm hiểu về cách làm việc của Hash

0 0 133

- vừa được xem lúc

Thuật toán Apriori khai phá luật kết hợp trong Data Mining

Bài toán khai thác tập phổ biến (frequent itemset) là bài toán rất quan trọng trong lĩnh vực data mining. Bài toán khai thác tập phổ biến là bài toán tìm tất cả tập các hạng mục (itemset) S có độ phổ

0 0 506

- vừa được xem lúc

Series Data structures and algorithms

Giới thiệu. Xin chào các bạn. Tổng quan. Hàng ngày, chúng ta vẫn thường xuyên sử dụng các cấu trúc dữ liệu như Array,Map.

0 0 139

- vừa được xem lúc

Singly Linked List

Tổng quan. Hai bài trước chúng ta đã tìm hiểu về Array và Hash Table.

0 0 151