HĐH Android quản lý các tiến trình như thế nào?

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down

HĐH Android quản lý các tiến trình như thế nào?

Bài gửi  TranAnhTu25 (HLT3) on 23/5/2014, 00:53

Windows vẫn duy trì chương trình, “đối đãi” với chúng như nhau dù bạn có thu nhỏ cửa sổ. iOS chỉ cho phép 1 ứng dụng duy nhất hoạt động tại một thời điểm. Android nằm đâu đó ở giữa, ứng dụng đang chạy được ưu tiên nhưng những ứng dụng khác không bị “siết chặt” như iOS.



Hệ thống phân cấp



Thứ bậc của process trong Android được chia thành 5 cấp theo 5 mức độ quan trọng từ cao đến thấp:

Foreground process (tạm dịch: tiến trình nổi bật): Đây chính là những process dùng để chạy ứng dụng (app) bạn đang dùng. Những process khác cũng có thể được xem là foreground khi chúng có liên hệ trức tiếp với process “xử lý” app đang chạy. Tại một thời điểm cũng chỉ có vài foreground process mà thôi.

Visible process (tạm dịch: tiến trình nhìn thấy được): Visible process không liên quan đến app đang chạy nhưng có tác động đến những gì thể hiện trên màn hình. Ví dụ, foreground process có tính năng “trong suốt” (transparent) và những ứng dụng được hiển thị đằng sau chính là visible process. Dễ thấy nhất là khi cài các theme hỗ trợ khả năng “làm mờ” ứng dụng hoặc “ghim” ứng dụng lên màn hình.

Service process (tạm dịch: tiến trình dịch vụ): Tiến trình dạng này không liên quan đến bất kì ứng dụng cả đang chạy và “dưới” đang chạy nào. Chúng thực hiện công việc một cách âm thầm như chơi nhạc hay tải tập tin. Ví dụ bạn đang nghe nhạc và muốn chuyển sang chơi game, khi bạn mở game cũng là lúc process phát nhạc trở thành service process, vẫn tiếp tục chơi nhạc khi bạn làm việc khác.

Background process (tạm dịch: tiến trình nền): Background process không xuất hiện, cũng không thực hiện vai trò dễ nhận ra (như chơi nhạc), chúng không ảnh hưởng đến trải nghiệm sử dụng. Tại một thời điểm, có rất nhiều background process đang chạy và bạn có thể xem chúng là những ứng dụng đang “tạm dừng”. Background process vẫn sử dụng RAM, cho phép bạn nhanh chóng chuyển đổi trở lại nhưng không sử dụng thêm tài nguyên phần cứng nào khác. Ví dụ khi dùng Chrome và bấm phím Home, Chrome trở thành background process và khi mở lại Chrome, nó cũng lập tức mở lại tab đang xem.

Empty process (tạm dịch: tiến trình rỗng): Tiến trình này không còn tiêu tốn tài nguyên nào nữa. Chúng được giữ lại nhằm mục đích tạo bộ nhớ đệm cho lần khởi động sau và hệ thống có thể tùy ý loại bỏ chúng.


Một ví dụ tổng quát sẽ giúp bạn hình dung dễ hơn: Angry Birds là foreground process khi bạn đang “bắn heo”. Ngừng chơi và mở Gmail, Angry Birds trở thành background process và Gmail thành foreground process. Kiểm tra xong email và trở lại Angry Birds, trò chơi hiện lại ngay màn bạn đang chơi. Trong khoảng thời gian đó, Angry Birds được duy trì trên RAM, bộ nhớ đệm và luôn trong tình trạng sẵn sàng khôi phục.


Tính năng tự động quản lý tiến trình của Android



Android có khả năng quản lý process một cách tự động, do đó bạn không cần cài đặt bất kì ứng dụng “quản lý ứng dụng” nào.

Khi cần nhiều tài nguyên, Android tự động xóa các process ít quan trọng nhất, bắt đầu từ empty và background process. Khi cần nhiều tài nguyên hơn nữa như lúc chơi game nặng, hệ thống tự động loại bỏ thêm service process. Chơi game nặng, nhạc của bạn sẽ tự tắt, tập tin tải về tự động dừng.

Trong đa số trường hợp, bạn không cần lo về lượng RAM của máy. Nhiều người lo rằng máy mình chỉ còn 1 ít RAM và “đổ thừa” cho hệ thống là không đúng. Cơ chế quản lý thông minh của Android tự động lưu giữ các ứng dụng và dữ liệu khác trên RAM cho bạn trải nghiệm tốt nhất có thể.

Dĩ nhiên, sự linh hoạt cũng có điểm yếu. Nếu một ứng dụng được lập trình không tốt, một service process có thể tiếp tục sử dụng tài nguyên CPU và RAM khiến máy nóng lên và tụt pin nhanh chóng. Về mặt kĩ thuật, tình trạng này được gọi là “memory leaked” (rò rỉ bộ nhớ).

Một số ứng dụng được lập trình đặt icon trên thanh thông báo notification như avast!, TrustGo Antivirus hay… Advanced Task Killer. Nếu bạn cố tắt icon này, ứng dụng “chống lại”. Bằng cách luôn giữ icon trên thanh thông báo, chúng cho biết mình không phải là background process để khỏi bị hệ thống loại bỏ khi cần tài nguyên.


Ứng dụng Android có thể tự đáp ứng các sự kiện



Các lập trình viên có thể cho ứng dụng của mình quyền tự khởi động cùng hệ thống hay chạy một dịch vụ ngầm. Ứng dụng có thể tự khởi động bởi nhiều loại “sự kiện” khác nhau: khi mở máy, khi chụp ảnh, khi thay đổi mạng. Khả năng này cho phép ứng dụng làm việc mà không cần tiêu tốn tài nguyên “chạy nền” (background process). Ví dụ Facebook Messenger biết khi nào bạn mở wifi để tự nhận tin nhắn.


Quản lý tiến trình “cơ bản”



Người dùng không cần tự mình làm việc này, nhưng cũng có vài cách để bạn “làm chủ” thiết bị. Có thể dùng menu đa nhiệm của Android 4.0 trở lên (thường gọi Recent Apps). Kích hoạt menu này bằng cách nhấn và giữ Home, nhấn liên tiếp Home 2 lần, chọn biểu tượng chỉ định (thường là 2 hình chữ nhật xếp chồng)… tùy vào loại máy.

Những ứng dụng hiện lên là chúng đang ở trạng thái “background process”. Dùng tay “quét bỏ” sẽ loại bỏ hoàn toàn ứng dụng khỏi bộ nhớ RAM của máy. Cách này thực sự cũng không quá cần thiết nhưng cũng có thể giải quyết các trường hợp ứng dụng gặp lỗi (đứng hình, vẫn chạy nhưng mất cảm ứng…).


Cũng có thể vào mục Settings > Apps > chọn ứng dụng và bấm Force stop để tắt chúng đi.


Android là hệ điều hành dựa trên Linux, mỗi ứng dụng được gán một mã số người dùng riêng (Linux user ID hoặc user account). Mã số này giúp phân biệt ứng dụng này với ứng dụng khác. Khi root Android, ứng dụng có thể tự “phá rào” và chạy với quyền cao nhất, quyền root.

Trường hợp này không thường xảy ra nhưng cũng đáng để cảnh báo, đây là một trong những lý do Android không được root sẵn khi đến tay người dùng.

TranAnhTu25 (HLT3)

Tổng số bài gửi : 16
Join date : 23/03/2014
Age : 23
Đến từ : Tp.Hồ Chí Minh

Xem lý lịch thành viên

Về Đầu Trang Go down

Bài hay

Bài gửi  MaiHuyNam(HLT3) on 23/5/2014, 21:57

TranAnhTu25 (HLT3) đã viết:
Windows vẫn duy trì chương trình, “đối đãi” với chúng như nhau dù bạn có thu nhỏ cửa sổ. iOS chỉ cho phép 1 ứng dụng duy nhất hoạt động tại một thời điểm. Android nằm đâu đó ở giữa, ứng dụng đang chạy được ưu tiên nhưng những ứng dụng khác không bị “siết chặt” như iOS.



Hệ thống phân cấp



Thứ bậc của process trong Android được chia thành 5 cấp theo 5 mức độ quan trọng từ cao đến thấp:

Foreground process (tạm dịch: tiến trình nổi bật): Đây chính là những process dùng để chạy ứng dụng (app) bạn đang dùng. Những process khác cũng có thể được xem là foreground khi chúng có liên hệ trức tiếp với process “xử lý” app đang chạy. Tại một thời điểm cũng chỉ có vài foreground process mà thôi.

Visible process (tạm dịch: tiến trình nhìn thấy được): Visible process không liên quan đến app đang chạy nhưng có tác động đến những gì thể hiện trên màn hình. Ví dụ, foreground process có tính năng “trong suốt” (transparent) và những ứng dụng được hiển thị đằng sau chính là visible process. Dễ thấy nhất là khi cài các theme hỗ trợ khả năng “làm mờ” ứng dụng hoặc “ghim” ứng dụng lên màn hình.

Service process (tạm dịch: tiến trình dịch vụ): Tiến trình dạng này không liên quan đến bất kì ứng dụng cả đang chạy và “dưới” đang chạy nào. Chúng thực hiện công việc một cách âm thầm như chơi nhạc hay tải tập tin. Ví dụ bạn đang nghe nhạc và muốn chuyển sang chơi game, khi bạn mở game cũng là lúc process phát nhạc trở thành service process, vẫn tiếp tục chơi nhạc khi bạn làm việc khác.

Background process (tạm dịch: tiến trình nền): Background process không xuất hiện, cũng không thực hiện vai trò dễ nhận ra (như chơi nhạc), chúng không ảnh hưởng đến trải nghiệm sử dụng. Tại một thời điểm, có rất nhiều background process đang chạy và bạn có thể xem chúng là những ứng dụng đang “tạm dừng”. Background process vẫn sử dụng RAM, cho phép bạn nhanh chóng chuyển đổi trở lại nhưng không sử dụng thêm tài nguyên phần cứng nào khác. Ví dụ khi dùng Chrome và bấm phím Home, Chrome trở thành background process và khi mở lại Chrome, nó cũng lập tức mở lại tab đang xem.

Empty process (tạm dịch: tiến trình rỗng): Tiến trình này không còn tiêu tốn tài nguyên nào nữa. Chúng được giữ lại nhằm mục đích tạo bộ nhớ đệm cho lần khởi động sau và hệ thống có thể tùy ý loại bỏ chúng.


Một ví dụ tổng quát sẽ giúp bạn hình dung dễ hơn: Angry Birds là foreground process khi bạn đang “bắn heo”. Ngừng chơi và mở Gmail, Angry Birds trở thành background process và Gmail thành foreground process. Kiểm tra xong email và trở lại Angry Birds, trò chơi hiện lại ngay màn bạn đang chơi. Trong khoảng thời gian đó, Angry Birds được duy trì trên RAM, bộ nhớ đệm và luôn trong tình trạng sẵn sàng khôi phục.


Tính năng tự động quản lý tiến trình của Android



Android có khả năng quản lý process một cách tự động, do đó bạn không cần cài đặt bất kì ứng dụng “quản lý ứng dụng” nào.

Khi cần nhiều tài nguyên, Android tự động xóa các process ít quan trọng nhất, bắt đầu từ empty và background process. Khi cần nhiều tài nguyên hơn nữa như lúc chơi game nặng, hệ thống tự động loại bỏ thêm service process. Chơi game nặng, nhạc của bạn sẽ tự tắt, tập tin tải về tự động dừng.

Trong đa số trường hợp, bạn không cần lo về lượng RAM của máy. Nhiều người lo rằng máy mình chỉ còn 1 ít RAM và “đổ thừa” cho hệ thống là không đúng. Cơ chế quản lý thông minh của Android tự động lưu giữ các ứng dụng và dữ liệu khác trên RAM cho bạn trải nghiệm tốt nhất có thể.

Dĩ nhiên, sự linh hoạt cũng có điểm yếu. Nếu một ứng dụng được lập trình không tốt, một service process có thể tiếp tục sử dụng tài nguyên CPU và RAM khiến máy nóng lên và tụt pin nhanh chóng. Về mặt kĩ thuật, tình trạng này được gọi là “memory leaked” (rò rỉ bộ nhớ).

Một số ứng dụng được lập trình đặt icon trên thanh thông báo notification như avast!, TrustGo Antivirus hay… Advanced Task Killer. Nếu bạn cố tắt icon này, ứng dụng “chống lại”. Bằng cách luôn giữ icon trên thanh thông báo, chúng cho biết mình không phải là background process để khỏi bị hệ thống loại bỏ khi cần tài nguyên.


Ứng dụng Android có thể tự đáp ứng các sự kiện



Các lập trình viên có thể cho ứng dụng của mình quyền tự khởi động cùng hệ thống hay chạy một dịch vụ ngầm. Ứng dụng có thể tự khởi động bởi nhiều loại “sự kiện” khác nhau: khi mở máy, khi chụp ảnh, khi thay đổi mạng. Khả năng này cho phép ứng dụng làm việc mà không cần tiêu tốn tài nguyên “chạy nền” (background process). Ví dụ Facebook Messenger biết khi nào bạn mở wifi để tự nhận tin nhắn.


Quản lý tiến trình “cơ bản”



Người dùng không cần tự mình làm việc này, nhưng cũng có vài cách để bạn “làm chủ” thiết bị. Có thể dùng menu đa nhiệm của Android 4.0 trở lên (thường gọi Recent Apps). Kích hoạt menu này bằng cách nhấn và giữ Home, nhấn liên tiếp Home 2 lần, chọn biểu tượng chỉ định (thường là 2 hình chữ nhật xếp chồng)… tùy vào loại máy.

Những ứng dụng hiện lên là chúng đang ở trạng thái “background process”. Dùng tay “quét bỏ” sẽ loại bỏ hoàn toàn ứng dụng khỏi bộ nhớ RAM của máy. Cách này thực sự cũng không quá cần thiết nhưng cũng có thể giải quyết các trường hợp ứng dụng gặp lỗi (đứng hình, vẫn chạy nhưng mất cảm ứng…).


Cũng có thể vào mục Settings > Apps > chọn ứng dụng và bấm Force stop để tắt chúng đi.


Android là hệ điều hành dựa trên Linux, mỗi ứng dụng được gán một mã số người dùng riêng (Linux user ID hoặc user account). Mã số này giúp phân biệt ứng dụng này với ứng dụng khác. Khi root Android, ứng dụng có thể tự “phá rào” và chạy với quyền cao nhất, quyền root.

Trường hợp này không thường xảy ra nhưng cũng đáng để cảnh báo, đây là một trong những lý do Android không được root sẵn khi đến tay người dùng.

Bài của bạn cũng nói đúng nhiều vấn đề về HDH, mà lại có liên quan đến Android rất nhiều

MaiHuyNam(HLT3)

Tổng số bài gửi : 21
Join date : 09/03/2013

Xem lý lịch thành viên

Về Đầu Trang Go down

Re: HĐH Android quản lý các tiến trình như thế nào?

Bài gửi  PhanVietTrung(HLT3) on 24/5/2014, 10:46

cái này là do hướng sử dụng và nhu cầu thực tế như thế nào mà dẫn đến việc thiết kế việc cung cấp tài nguyên cho phù hợp.
Ở Windows hay Mac OSX, người sử dụng cần một hệ điều hành có hiêu suất cao, người ta không quan trọng lắm yếu tố sử dụng năng lượng, CPU của các máy chạy hệ điều hành này cho hiệu suất cao nên việc chạy đa chương trình, đa luồng là điều bắt buộc, ở mảng mobile thì lại khác, yếu tố đơn giản hóa, tiết kiệm năng lượng, khả năng hoạt động liên tục bền bỉ nên việc ưu tiên chạy một số hữu hạn các tiến trình là cần thiết, vấn đề muôn thuở là tài nguyên, ở đây là hạn chế về pin, sức mạnh cpu, trên Android hay iOS thì cũng gần như nhau, là một hệ điều hành di động chúng đặt vấn đề tối ưu hóa pin lên hàng đầu, việc chạy đa chương trình của android cũng không quá cần thiết, ít người dùng nhiều app chạy song song một lúc trên điện thoại,.Xu hướng hiện nay là tối ưu hóa trãi nghiệm người dùng và Apple đã làm rất tốt điều này. Android thì có lợi thế là đa dạng, phong phú mẫu mã cho người dùng (khổ cho lập trình viên).

PhanVietTrung(HLT3)

Tổng số bài gửi : 25
Join date : 09/03/2014

Xem lý lịch thành viên

Về Đầu Trang Go down

Các thông tin thêm

Bài gửi  MaiHuyNam(HLT3) on 24/5/2014, 11:37


Mình hiểu ý bạn, trong Android lu6n có phần Thread vaf MultiThread cho các lập trình Android.Hiệu suất cao, do có quá trình tiến trình chạy trên các hệ máy khác nhau,để lập trình tốt các lập trình viên phải làm sao giảm thiểu được hiệu suất pin khi sử dụng

MaiHuyNam(HLT3)

Tổng số bài gửi : 21
Join date : 09/03/2013

Xem lý lịch thành viên

Về Đầu Trang Go down

Re: HĐH Android quản lý các tiến trình như thế nào?

Bài gửi  PhanVietTrung(HLT3) on 24/5/2014, 15:39

MaiHuyNam(HLT3) đã viết:
Mình hiểu ý bạn, trong Android lu6n có phần Thread vaf MultiThread cho các lập trình Android.Hiệu suất cao, do có quá trình tiến trình chạy trên các hệ máy khác nhau,để lập trình tốt các lập trình viên phải làm sao giảm thiểu được hiệu suất pin khi sử dụng

 No đề nghị bạn xem kĩ lại comment, sửa lỗi trước khi post, mình không hiểu ra ý bạn muốn nói là gì cả  Rolling Eyes

PhanVietTrung(HLT3)

Tổng số bài gửi : 25
Join date : 09/03/2014

Xem lý lịch thành viên

Về Đầu Trang Go down

Re: HĐH Android quản lý các tiến trình như thế nào?

Bài gửi  Sponsored content


Sponsored content


Về Đầu Trang Go down

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang

- Similar topics

 
Permissions in this forum:
Bạn không có quyền trả lời bài viết