Trang 1 của 24 12311 ... CuốiCuối
Kết quả 1 đến 10 của 239
  1. #1
    Ngày tham gia
    Jul 2014
    Bài viết
    0

    CPU Governor, I/O Scheduler là gì và chúng ảnh hưởng như thế nào đến thiết bị Android?






    Trong quá trình sử dụng máy Android, nhất là những bạn nào có root máy và nghịch sâu vào hệ thống, chắc hẳn các bạn cũng đã loáng thoáng thấy qua hai chữ "CPU Governor" và "I/O Scheduler". Mình cũng thế, và trước đây mình chẳng quan tâm nó là gì vì cứ thấy người ta đặt sẵn cho mình thì dùng thôi. Tuy nhiên, trong lần tìm hiểu về các công cụ tinh chỉnh hệ thống bằng ứng dụng ROM Toolbox, mình thấy CPU Governor và I/O Scheduler chiếm hai mục rất lớn nên mới thắc mắc. Thế là mình bắt đầu tìm hiểu thêm và phát hiện ra rằng đây là hai thứ rất thú vị trong Android. Hôm nay mình xin chia sẻ với các bạn về chúng.



    1. CPU Governor là gì?



    Một "governor" (tạm dịch: kẻ thống trị, thủ lĩnh, người đứng đầu") là một thành phần dùng để kiểm soát CPUFreq, tức xung nhịp CPU. Nhiệm vụ của governor đó là điều khiển CPU tăng hoặc giảm xung nhịp cho phù hợp với nhu cầu của người dùng. Governor rất quan trọng đối với smartphone và tabet bởi nó ảnh hưởng rất lớn đến độ mượt giao diện cũng như thời lượng dùng pin của chiếc máy bạn đang cầm trong tay.



    CPU Governor có rất nhiều loại, có loại thì được thiết kế cho vi xử lí hai nhân, có loại chỉ cho một nhân, nhưng cũng có loại dành cho chip lõi tứ nữa. Để chuyển đổi giữa các Governor với nhau, bắt buộc thiết bị của bạn đã phải root rồi, đồng thời bạn phải sở hữu một bản ROM hoặc một phần mềm nào đó có khả năng đổi Governor. Cũng cần lưu ý rằng mỗi một kernel khác nhau (kernel là phần mềm trung gian đứng giữa phần cứng và hệ điều hành) thường đi kèm theo một bộ các governor khác nhau đấy nhé.



    Một số phần mềm có thể dùng để đổi CPU Governor:

    1. SetCPU.

    2. No-frills CPU.

    3. Tegrak Overclock.

    4. ROM Toolbox



    Trong bài viết dưới đây, mình sẽ minh họa bằng phần mềm SetCPU cho nó quen thuộc bởi app này hỗ trợ tinh chỉnh nhiều thứ, có cả CPU governor lẫn ép xung và giao diện rất đơn giản. Ở giao diện chính của app này, bạn sẽ thấy được xung nhịp hiện tại được hiển thị bằng con số to nhất ở giữa, governor hiển thị ở ngay bên dưới nó và dưới nữa là I/O scheduler (cái này chúng ta sẽ tìm hiểu sau). Hai con số màu xanh là bạn có thể tinh chỉnh được, nó cho phép thiết lập xung tối đa và tối thiểu cho thiết bị. Ngó xuống dưới nữa bạn sẽ thấy được mục tùy chọn governor.











    Sau đây là chi tiết về một số governor phổ biến:



    1. ondemand: Bạn có thể tìm thấy ondemand ở hầu hết các kernel Android và thường là governor mặc định của nhiều kernel. Khi mức độ tải của CPU đạt đến một điểm cực đại (up threshold - bạn có thể chỉnh lại điểm này trong thẻ "Governor" - kéo ngón tay sang phải hai lần), ondemand sẽ nhanh chóng nâng xung nhịp CPU lên cao nhất có thể để đáp ứng được nhu cầu sử dụng máy của chúng ta, sau đó nó sẽ dần dần giảm xung xuống. Khi đặt ondemand, mình nhận thấy rằng trong hầu hết trường hợp, máy đều đẩy xung CPU lên mức cực đại do mình thiết lập. Còn khi tác vụ đã hoàn tất, xung sẽ giảm xuống. Tiếp tục chạy một thứ gì đó khác, CPU lại được đẩy lên cao và chuyện này rất hay xảy ra nếu bạn thường sử dụng nhiều app cùng lúc (đa nhiệm)



    ondemand là một trong những governor được các nhà sản xuất chọn bởi vì nó hoạt động ổn định, được kiểm tra kĩ càng và đảm bảo hiệu năng tốt cho smartphone. Mặc dù không tiết kiệm pin như vài governor khác nhưng chuyện đó không ảnh hưởng nhiều lắm. Hãy thưởng tượng việc sử dụng một chiếc máy chậm, giật so với việc bị giảm đi khoảng 2-3 tiếng dùng pin nhưng có độ mượt tốt, bạn chọn cái nào?



    2. interactive: Governor này cũng có thể dễ dàng tìm thấy trong rất rất nhiều kernel và thường được các nhà sản xuất thiết bị chọn làm mặc định. interactive có chức năng tương tự như ondemand, tuy nhiên nó tập trung nhiều vào việc tăng tốc độ phản ứng của việc thay đổi tốc độ CPU.



    Nếu như ondemand tinh chỉnh xung tùy theo từng tác vụ được "xếp hàng" chờ đến lượt mình thì interactive chỉnh xung theo một bộ định thời (timer) với các quãng thời gian nhất định. Bộ định thời này được quyết định bởi lập trình viên viết ra kernel. Nói cách khác, nếu một ứng dụng đòi hỏi 100% tải CPU, người dùng vẫn có đủ thời gian để chạy thêm một tác vụ khác trước khi CPU bắt đầu giảm xung nhịp nếu lập trình viên đặt quãng thời gian đủ dài. Cũng nhờ có bộ định thời mà interactive có thể tận dụng tốt hơn các xung nhịp ở khoảng giữa mức tối đa, tối thiểu. (Ví dụ, max là 1500MHz, min là 300MHz, bạn sẽ thấy máy có chạy ở mức 1000MHz, 800MHz, 700MHz, 600MHz,...)







    Mức độ tiêu thụ điện của CPU ở governor interactive. Bạn có thể thấy rằng chúng biến thiên gần như theo chu kì cho một tác vụ nào đó, và chu kì này chính là khoảng thời gian mà người viết ra ROM đã định. Khoảng giữa giảm xuống thấp là vì mình không còn dùng app nào nữa.

    Tuy nhiên, bởi vì interactive được phép dành nhiều thời gian ở xung nhịp tối đa hơn là ondemand (để phục vụ việc nâng cao hiệu năng), do đó nó có thể ảnh hưởng tiêu cực đến thời lượng dùng pin. Mặc dù vậy, trong hầu hết các trường hợp, interactive sẽ cho hiệu năng cao hơn, còn sự khác biệt thời gian dùng pin không quá lớn.



    Ngoài ra, interactive còn mặc định rằng khi người dùng mở màn hình lên, họ sẽ nhanh chóng tương tác với các ứng dụng trên máy. Do đó, việc mở màn hình sẽ làm xung CPU tăng lên tối đa, sau đó khi bạn chạy app thì xung cũng vẫn còn đang ở mức maximum.



    3. conservative: Hiện diện trong một số kernel và nó cũng có cách hoạt động gần giống với ondemand, tuy nhiên tốc độ tăng xung nhịp CPU không nhanh như ondemand, nhờ đó mà nó sẽ đáp ứng nhu cầu tốt hơn. conservative được tạo ra với mục đích giữ cho máy chạy ở xung nhịp tối thiểu thường xuyên nhất có thể. Tùy theo cách lập trình viên thiết lập thông số cho governor này cũng như xung nhịp tối thiểu do người dùng chọn mà máy sẽ có hiệu năng khác nhau. Nhìn chung, conservative khiến thiết bị của chúng ta trở nên kém nhạy hơn là ondemand. Bù lại, bạn sẽ có thời gian dùng pin dài hơn.



    4. performance: Có mặt trong hầu hết các kernel. Governor này sẽ giữ cho CPU chạy ở xung nhịp tối đa mọi lúc mọi nơi. So với dùng ondemand và đặt cả xung nhịp tối đa và tối thiểu về cùng một giá trị, performance mang lại hiệu quả cao hơn. Như cái tên của nó đã gợi ý, khi chọn Governor này, máy của chúng ta sẽ hoạt động với hiệu năng cao nhất có thể, phát huy toàn bộ sức mạnh của CPU, tuy nhiên sẽ hao pin hơn.



    Việc thiết lập cho máy luôn chạy ở xung nhịp mặc định nghe có vẻ điên rồ, nhưng thực chất cũng có lý riêng. Nhờ CPU luôn hoạt động với tốc độ tốt đa nên nó sẽ "chạy về đích" nhanh hơn. Quá trình "chạy về đích" này được cộng đồng phần cứng gọi là race-to-idle. Race-to-idle là quá trình mà điện thoại hoàn tất một công việc được giao (ví dụ như đồng bộ email) rồi trở về trạng thái cực kì tiết kiệm điện của CPU.



    5. powersave: Có mặt trong một số kernel. Nó sẽ giữ cho CPU luôn chạy ở tốc độ tối thiểu mà người dùng thiết lập, nhờ vậy thời gian dùng pin sẽ được kéo dài ra, tuy nhiên máy sẽ chậm đi thấy rõ. Ngay cả chiếc Nexus 4 nổi tiếng mượt mà nhưng khi chỉnh governor thành powersave với mức thấp nhất thì bạn sẽ có cảm giác muốn... đập máy.



    6. hotplug: Chỉ xuất hiện trong một số ROM hỗ trợ cho vi xử lí đa nhân. Nó giống với ondemand, tuy nhiên nó sẽ tắt các nhân thừa đi khi không cần dùng đến.



    7. userspace: Theo lời SetCPU thì Governor này phải được dùng kèm với một phương thức kiểm soát xung nhịp CPU không phải của SetCPU. Nhà phát triển app này khuyên chúng ta không nên chọn userspace governor. Thực chất userspace không phổ biến lắm trên điện thoại, chủ yếu được dùng trên desktop và server để cho phép các ứng dụng chạy bởi người dùng được quyền tinh chỉnh xung nhịp.



    8. smartass: Thường thấy trong các bản ROM custom, ROM Cook. smartass governor sẽ giữ máy chạy ở xung nhịp thấp nhất trong trường hợp thiết bị đang ở trạng thái rỗi. Thực chất Governor này sử dụng cùng ý tưởng với Governor interactive, tuy nhiên hiệu năng được đáng giá là ngang với Governor min max, còn pin thì cũng được nâng lên một chút vì hầu hết thời gian của smartass là chạy ở mức xung nhịp thấp.



    Ngoài ra, smartass chỉnh xung nhịp tối đa ở chế độ ngủ về 352MHz. Ngay cả khi phần min frequency bạn đặt cao hơn thì nó vẫn kéo về 352MHz. Do đó, bạn sẽ không cần đến profile sleep nữa.



    9. min max: Tùy theo mức độ tải của CPU mà máy sẽ chạy hoặc ở xung nhịp cao nhất, hoặc ở xung nhịp thấp nhất, không có xung nhịp nào ở giữa.



    10. scary: một Governor mới được viết dựa trên conservative nhưng lại có một số tính năng của smartass. Nó sẽ bắt đầu ở tốc độ thấp nhất, lấy mẫu thử và nếu mẫu này cần tốc độ cao hơn upthreshold, scary sẽ tăng xung nhịp nhịp lên mỗi lần một mức (lúc giảm cũng vậy). Tốc độ tối khi tắt màn hình là 245MHz và hầu hết thời gian, scary sẽ chạy ở xung nhịp thấp. Mục tiêu của scary, nói tóm lại, là để đạt thời lượng dùng pin tốt với hiệu năng trung bình.



    Theo SetCPU, XDA

    View more random threads:


  2. #2
    Ngày tham gia
    Jul 2014
    Bài viết
    0
    2. I/O Scheduler là gì?



    I/O (input/output) Scheduling là cụm từ được dùng để mô tả cách thức mà hệ điều hành quyết định thứ tự các khối lệnh vào/ra sẽ được chuyển đến bộ nhớ lưu trữ. I/O Scheduling đôi lúc còn được gọi là disk scheduling, còn "I/O Scheduler" là một phần mềm để quản lí việc này. Lợi ích mà I/O scheduler mang lại tùy thuộc vào từng loại scheduler bạn chọn, trong đó có một số thứ tiêu biểu như:

    • Giảm thiểu thời gian lãng phí do việc di chuyển đầu kim tìm dữ liệu (cái này thì Android không có)
    • Ưu tiên chuyển khối I/O của một tiến trình (process) nhất định. Mỗi ứng dụng là một process chính, và chúng có thể phát sinh thêm các process con tùy cái.
    • Cân bằng băng thông truy cập bộ nhớ lưu trữ cho mỗi tiến trình đang chạy
    • Đảm bảo rằng một số tiến trình sẽ được thực thi trong một khoảng thời gian cho phép
    Mô tả, lợi ích và hạn chế của từng I/O Scheduler



    1. Noop: Chèn tất cả những yêu cầu I/O vào một hàng "First In First Out" (tức là dữ liệu nào vào trước thì sẽ được xử lí và đi ra trước). Đây là I/O Scheduler rất thích hợp cho những thiết bị lưu trữ không dựa vào các chuyển động cơ học để truy cập dữ liệu (vâng, chính là thẻ nhớ hoặc bộ nhớ flash trên smartphone, tablet Android của chúng ta). Bạn cần biết rằng các chip nhớ flash không yêu cầu sắp xếp lại các yêu cầu I/O (request) như ổ đĩa cứng thông thường, vốn sử dụng một tay kim và nhiều phiến đĩa xoay.



    Lợi ích:

    • Giải quyết xong các yêu cầu I/O với số lượt CPU cycle (một cycle bao gồm các công đoạn fetch-and-execute, tức lấy dữ liệu và thực thi nó theo yêu cầu của ứng dụng) thấp nhất, giúp phần nào tiết kiệm pin.
    • Tối ưu hóa cho bộ nhớ flash, không có thời gian lãng phí khi di chuyển đầu kim
    • Cho tốc độ cao trên những hệ thống, ứng dụng cần sử dụng nhiều đến cơ sở dữ liệu.
    Hạn chế:

    • Việc giảm số lượng CPU cycle có thể dẫn đến mất mát về hiệu năng
    • Tốc độ ghi lên thẻ nhớ chưa cao bằng Scheduler Deadline và CFQ




    2. Deadline:

    Mục tiêu của I/O Scheduler này là để giảm tối thiểu độ trễ. Có tất cả năm hàng (queue) được dùng để liên tục sắp lại các dữ liệu đầu vào.



    Lợi ích:

    • Gần như là một Scheduler theo thời gian thực
    • Tốt cho việc giảm độ trễ cho mỗi yêu cầu I/O
    • Tối ưu hóa cho việc truy cập và truy cập cơ sở dữ liệu
    • Băng thông cho từng tiến trình (process) - tức là bao nhiêu phần trăm khả năng xử lí của CPU mà process cần - có thể dễ dàng tính toán
    • Giống noop, Deadline là một Scheduler tốt cho các ổ SSD, bộ nhớ flash
    • Tốc độ thử nghiệm ghi dữ liệu lên thẻ SD (và bộ nhớ trong) của Deadline cao hơn Noop
    Hạn chế

    • Khi hệ thống bị quá tải, một số lượng lớn tiến trình có thể không kịp chuyển dữ liệu đi theo đúng yêu cầu của ứng dụng, và chúng ta rất khó dự đoán chuyện đó.




    3. CFQ:

    Ba chữ cái này viết tắt cho Completely Fair Queuing, tức là tuyệt đối công bằng. Scheduler này sẽ cố gắng phân bổ băng thông I/O đều hết cho mọi tiến trình trong máy. Thời gian mà mỗi process được phép sử dụng tùy thuộc vào thứ tự ưu tiên của process chính.



    Lợi ích:

    • Mang lại hiệu năng I/O cân bằng, tốc độ ghi dữ liệu lên thẻ nhớ (và bộ nhớ trong) rất nhanh
    • Tốt cho các hệ thống có nhiều nhân xử lí
    • Có hiệu suất tốt nhất cho các hệ thống và ứng dụng thường xuyên dùng đến cơ sở dữ liệu, chỉ xếp sau Deadline Scheduler
    Hạn chế:

    • Khi sử dụng CFQ trên Android, một số người dùng nói rằng việc quét các tập tin đa phương tiện (lúc máy mới mở lên) mất nhiều thời gian để hoàn tất hơn bình thường. Có thể hiện tượng này xảy ra là do băng thông I/O bị phân bố đều cho toàn hệ thống, do đó tiến trình dùng cho việc quét không được ưu tiên.
    • Một số trường hợp khác cũng có độ trễ cao.




    4. SIO (một số máy có, một số máy không, tùy kernel):

    Simple I/O scheduler được tạo ra nhằm mục tiêu giảm độ trễ của các yêu cầu I/O và nó là một thứ pha trộn giữa noop với deadline. Các request sẽ không được sắp xếp lại.



    Lợi ích:

    • Đơn giản, do đó hoạt động ổn định
    • Hạn chế độ trễ của các yêu cầu I/O
    Hạn chế:

    • Tốc độ ghi ngẫu nhiên bị chậm hơn trên ổ đĩa flash so với những scheduler khác
    • Tốc độ ghi liên tục trên ổ flash không tốt lắm.
    Nói tóm lại, không có I/O Scheduler nào là tốt nhất. Tùy vào môi trường sử dụng và các ứng dụng được chạy mà bạn có thể chọn cho thích hợp. Mình gợi ý các bạn nên sử dụng Noop hoặc Deadline vì mình đã thử nghiệm nó một thời gian cũng tương đối dài trên Nexus 4 và nhận thấy cả hai đều đáp ứng tốt, tốc độ chạy ứng dụng nhanh và việc xử lí dữ liệu của các app cũng tốt. Nếu máy bạn đang không có vấn đề gì nghiêm trọng, bạn không cần thiết phải thay đổi I/O Scheduler làm gì, và nó cũng không gây ảnh hưởng nhiều đến hiệu năng như CPU Governor.



    Nguồn: XDA

  3. #3
    Ngày tham gia
    Jun 2014
    Đang ở
    Hà Nội
    Bài viết
    0
    Nói chung là mình toàn xài đo làm ssẵn nên ko quan tâm lắm

  4. #4
    Ngày tham gia
    Jun 2014
    Bài viết
    0
    Thanks, bài viết rất bổ ích. [IMG]styles/default/xenforo/clear.png[/IMG]

  5. #5
    Ngày tham gia
    Jul 2014
    Bài viết
    0
    Đọc xong vẫn thấy chữ ơi là chữ [IMG]styles/default/xenforo/clear.png[/IMG]

  6. #6
    bài dịch đúng ko bác hôm trc e vừa đọc ở đâu đấy đọc tiếng anh hoa hết cả mắt

  7. #7
    Ngày tham gia
    Jul 2014
    Bài viết
    0
    chúng ảnh hưởng lớn đến thiết bị Android

  8. #8
    Ngày tham gia
    Jul 2014
    Bài viết
    0
    đã biết vì sao có rom tốc độ thẻ chậm, có rom cao [IMG]styles/default/xenforo/clear.png[/IMG] thanks bài viết

  9. #9
    Bác nào giỏi tiếng anh vào đây đọc nè. Giải thíc chi tiết tận răng luôn. Cứ vừa đọc vừa tweak. Hay phết

    http://forum.xda-developers.com/show....php?t=1369817



    Cái này cũng nghiên cứu cách đây gần năm rồi



    Nói gì thì nói app tweak kernel hay nhất mạnh nhất vẫn cứ là stweak. Dù chỉ dùng dc cho siyah kernel or siyah based kernel



    Mod tinh tế nên tìm hiểu thêm về cái này. Ở tinh tế có bài nhắc tới nhưng chỉ ở mức quá sơ đẳng. Kiểu noob thôi



    Lão gokhanmoral này công nhận kiểu genius ấy. Chả bù cho mấy thằng samfan ngu dốt cứ tưởng mình cầm galaxy là bố đời



    Biết tweak thì chấp 3-400mhz xung thấp hơn máy mình vẫn mượt hơn máy các bạn kiểu chỉ đơn giản là uv và set gov một cách rất sơ đẳng



    Gov tôi ưu nhất bây giờ phải là hyper. Mặc định nó rất hao pin nhưng tweak xong thì... Ngon vãi núa =)))



    I/o thì 1 phiếu cho row. Nó rất có tương lai trong giới linux. Có thể nói là the most advanced

  10. #10
    Ngày tham gia
    Jul 2014
    Bài viết
    0
    rất hay...

Các Chủ đề tương tự

  1. Khóa học miễn phí lập trình web ph, android và thiết kế đồ họa
    Bởi seothainguyen92 trong diễn đàn Khu Vực Máy Tính
    Trả lời: 3
    Bài viết cuối: 07-05-2014, 05:20 PM
  2. HP giới thiệu tablet Android bốn nhân giá chỉ 99 đô: HP 7 Plus
    Bởi haiduong2511tmv trong diễn đàn Mua Bán Điện Thoại
    Trả lời: 115
    Bài viết cuối: 05-29-2014, 07:44 PM
  3. Trả lời: 238
    Bài viết cuối: 05-16-2014, 10:48 PM

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •