iOS, Android, WP, BB10 có đa nhiệm không? Câu trả lời là có và không.
Chúng ta đã quá quen với kiểu đa nhiệm nhiều cửa sổ trên Windows, nên có
xu hướng mang ngay những quan niệm đa nhiệm đó để áp đạt lên điện
thoại. Chính vì thế thường xuất hiện khái niệm “
đa nhiệm nửa mùa ”
khi nói về đa nhiệm trên một hệ điều hành di động. Vậy cụ thể thì là
như thế nào? Liệu các hệ điều hành di động có đa nhiệm và bản chất sự
việc là sao? Tất cả cũng chỉ vì cái khái niệm đa nhiệm trên thiết bị di
động chưa được định nghĩa rõ ràng.
Tất nhiên, nếu như bạn mang khái niệm trên máy tính lên điện thoại thì
không có chiếc điện thoại thông minh nào có thể đáp ứng được “đa nhiệm”
kiểu của máy tính cả. Dù rằng bạn giải thích khái niệm này bằng các thao
tác sử dụng cụ thể hay bằng khái niệm sâu bên trong hệ thống. Chính vì
thế, với những ai quan niệm đa nhiệm là phải giống trên Windows thì thật
tiếc: Không có chiếc điện thoại thông minh nào đa nhiệm kiểu đó cả, hay
nói cách khác thì chúng không đa nhiệm.
Nhưng với phần lớn người dùng, dù nói đa nhiệm thì đơn giản họ cũng chỉ
cần vừa nghe nhạc, vừa lướt web đồng thời lại chat Facebook, hay chỉnh
sửa ghi chú, văn bản … Nếu như vậy thì các hệ điều hành di động hiện tại
đã đáp ứng tốt rồi và câu trả lời là: Các điện thoại thông minh hiện
tại đều đa nhiệm.
Tuy nhiên, để cho chúng ta không còn bị nhầm lẫn giữa các khái niệm nữa,
thì từ đây về sau hãy để “đa nhiệm” cho máy tính, còn với điện thoại
hãy gọi nó là “đa năng”.
"Đa năng
là bạn có thể nghe nhạc, chat facebook, lướt web … cùng một lúc!"
Tham khảo các ý kiến hay:
Theo
mình đa nhiệm thực sự là không cần chia thành 2 tầng ứng dụng (1 cho
GUI, 1 cho service chạy ngầm), khi bị ẩn đi thì tầng GUI đang làm dở các
tác vụ vẫn tiếp tục làm tiếp. Vì nhiều lập trình viên không thể chia
tất cả các tác vụ xuống tầng service (Do khó thiết kế hoặc tốn nhiều
công lập trình) nên khi ẩn đi là pause hoặc stop hẳn. Các ứng dụng khi
chuyển qua lại là luôn trong trạng thái sẵn sàng phục vụ, không phải đợi
khôi phục dạng "ngủ đông".
Tất nhiên vì tài nguyên mobile hạn chế nên phải hy sinh cái này cái khác
nhưng hệ điều hành nào làm gần nhất đc như thế mà vẫn tốn ít tài nguyên
thì hệ điều hành đó là đa nhiệm số 1.
Trong trường hợp buộc phải hy sinh 1 số ứng dụng đang chạy thì cho phép
người dùng chọn ứng dụng nào ưu tiên ở lại. iOS hầu như chỉ ưu tiên giữ
lại ứng dụng gà nhà (là các ứng dụng hệ thống như sms, phone, safari...)
cũng có cái tốt vì đây cũng đều là ứng dụng cơ bản cần dùng ngay nhưng
như thế không công bằng cho các ứng dụng bên thứ 3. Android thì mọi thứ
công bằng như nhau, chẳng ưu tiên anh nào (nếu không root thì chẳng chọn
đc anh nào ưu tiên) cũng có cái dở là các ứng dụng cần đáp ứng tức thì
như phone và sms nhiều khi lại bị đóng mất, phải khởi động lại rất lâu.
Windows phone thực sự cũng có cách chạy đa nhiệm nhưng các ứng dụng viết
cho Windows Phone đa phần không được đầu tư đủ nhiều (có thể do thị
phần ít) nên chuyển ứng dụng là tắt làm nhiều người nghĩ không thể đa
nhiệm trên Windows Phone.
Hiện tại chẳng hệ điều hành di động nào đáp ứng đc đa nhiệm lý tưởng như
trên. Android có nhiều máy cấu hình RAM và CPU khủng hơn nên việc đa
nhiệm có phần dễ thở hơn.
ý kiến cá nhân mình với vấn đề đa nhiệm:
1 số bạn nói đa nhiệm là chạy nhiều ứng dụng cùng lúc: nghe nhạc, xem phim, lướt web, chơi game...
--> cái này có vẻ chưa ổn lắm vì Nokia S40 đã có thể vừa nghe nhạc
vừa làm lướt web hay nt đc, thậm chí mở video ấn nút đỏ nó vẫn chạy. Kô
lẽ S40 là đa nhiệm, nếu bác nào đồng ý S40 đa nhiệm thì khỏi bàn việc
các OS giờ đa nhiệm hết.
Nếu đồng ý S40 k phải đa nhiệm nên phải xem lại thế nào là đa nhiệm???
Nếu lấy Windows làm chuẩn thì đa nhiệm phải là ứng dụng đc ẩn đi nhưng
vẫn chạy đầy đủ 100% như khi trên màn hình. Tức là ứng dụng hoàn toàn
chạy như bt chỉ khác là nó hiện hoặc k hiện trên màn hình mà thôi.
Trên Windows có thể thấy full đa nhiệm ở chỗ: ứng dụng xem phim chạy
phát ra tiếng cho dù ta minimize nó, IDM vẫn tải, game vẫn chạy, FB trên
trình duyệt vẫn hoạt động bt.... ở đây k xét đến các ứng dụng mà lập
trình viên bắt được sự kiện người dùng thu nhỏ ứng dụng để tạm dừng ứng
dụng như pause game, pause trình đọc media.
ở trên mobile ta có thể thấy hầu hết do việc hạn chế tài nguyên hệ thống
nên lập trình viên luôn bắt sự kiện người dùng thoát ứng dụng = việc ấn
nút Home (hoặc các thao tác khác để ẩn app) để đóng băng ứng dụng. Tuy
vậy ta vẫn nhận được thông báo từ Zalo, Viber, FB Mess... vì chúng luôn
có tiến trình chạy ngầm riêng, cái này k thể nói là đa nhiệm vì tiến
trình này chạy ngay khi bật máy hoặc bật ứng dụng, và nó k bị đóng lại
khi ta đóng ứng dụng. Gần như nó chạy độc lập. còn ứng dụng chính vẫn bị
đóng băng, khác với trên Windows là cả background process & main
app chạy song song dù ẩn đi.
1 số app trên mobile có thể đa nhiệm theo kiểu: bật ứng dụng, sau đó
giao cho nó 1 việc nào đó như upload chẳng hạn, thì ứng dụng sẽ cho phép
tác vụ này chạy 1 tiến trình riêng thì khi ấn nút Home thoát ra ứng
dụng bị đóng băng nhưng tiến trình cho tác vụ upload vẫn chạy.
Phần cứng của mobile hiện nay đã đủ cho việc chạy full đa nhiệm, chỉ là
lối mòn lập trình chưa thay đổi, nhưng nghĩ lại thì việc lập trình ứng
dụng đa nhiệm chạy full sẽ dễ hơn do LTV k cần nghĩ cách tối ưu tài
nguyên. Nhưng bạn cần ứng dụng đa nhiệm như thế làm j`? bạn sẽ cần ứng
dụng chạy đầy đủ trong khi chỉ cần nó upload thôi à?
Mình có một vài ý kiến như sau:
1. Tất cả các OS nói trên đều có thể đa nhiệm và đều đa nhiệm rất tốt.
Có lẽ khác nhau không nhiều. Sự khác biệt giữa các OS chủ yếu là về sự
lựa chọn kiểu chạy đa nhiệm và giao diện của cửa sổ đa nhiệm. Màn hình
đt vốn bé, hầu hết người dùng chỉ tập trung được vào một ứng dụng. Nên
việc làm kiểu đa nhiệm như trên máy tính chạy windows là không cần
thiết, tốn tài nguyên (dẫn tới tốn pin). Có lẽ điều đó đã góp phần
giúp iOS là OS quản lý năng lượng tốt nhất.
2. Việc chạy đa nhiệm liên thế nào phần lớn do thiết kế về kernel của
OS. BB 10 thì chia các phần trong kernel như các múi cam trong quả cam,
nên để xử lý đa nhiệm dễ dàng hơn các kiểu khác, rất khó bị crash OS,
bù lại đây là OS cần nhiều RAM nhất. WP hay windows trên PC thì kernel
kiểu một cục to như quả dưa hấu, nên xử lý đa nhiệm khó hơn (MS đã rất
giỏi nên mới làm đc như trên WP hay windows), OS dễ bị crash hơn,
nhưng bù lại thì nhanh hợn và ít RAM hơn (windows XP nếu tách hết các
thứ giao diện, service giải trí thì có thể chạy tốt trên máy 32MB RAM,
WP thì cần 512 RAM là mượt rồi). Về kernel của android hay iOS thì mình
không biết. Theo quan điểm cá nhân thì kernel của BB10 là kém hơn so
với iOS, Android và WP.
3. Một số bạn nhầm việc chạy đa nhiệm kiểu nhiều thread khác nhau với ứng dụng chạy kiểu service mode trên OS.
Trên đây là ý kiến cá nhân của mình, có gì mong các bác chỉ giáo.
David Villa Sanchez đã nói:
↑
Thường thì các bác cứ hiểu đa nhiệm là phải chạy được nhiều chương trình cùng một lúc. Nhưng sự thật thì không phải như vậy.
Ai học bên CNNT, Software Engineering hay Embedded System sẽ hiểu rõ vấn đề này.
Ở một thời điểm CPU đơn nhân chỉ có thể thực hiện 1 và chỉ một tác vụ.
Ở CPU đa nhân và trong một nhân có đa luồng nó có thể thực hiện nhiều
tác vụ cùng một lúc, cái này không phải tự động mà hệ điều hành và phần
mềm phải được lập trình để hỗ trợ cái mà chúng ta hay gọi là multi-task.
Mình không dùng BB nên không biết.
Android, Windows Phone, iOS (4 trở lên) đều có đa nhiệm.
Đa nhiệm ở đây không phải là chạy nhiều chương trình cùng một lúc mới được gọi là đa nhiệm.
Những hệ điều hành nào có những tác vụ chạy nền bên dưới nó thì có thể gọi đó là một hệ điều hành đa nhiệm.
Nếu như iOS đơn nhiệm thì trong một thời gian bạn không thể vừa chat FB
Messenger vừa nghe nhạc, vừa nhận thông báo có email gửi tới hay một
notification mới từ facbook app được.
Tương tự trên Windows Phone và Android.
Đa
nhiệm là khả năng chạy nhiều phần mềm ứng dụng khác nhau cùng 1 lúc,
điển hình là hệ điều hành Windows của Microsoft. Trên điện thoại do hạn
chế về phần cứng nên việc sử dụng đa nhiệm có bị rút gọn. Tuỳ ứng dụng
có thể chạy đa nhiệm thật, tuỳ ứng dụng có thể chạy đa nhiệm thật, có
ứng dụng lại chỉ có thể chạy đa nhiệm "giả vờ". Ngay bản thân trên
Android, mục Development Setting bạn cũng có thể thấy ở cuối có mục cho
phép chạy bao nhiêu ứng dụng ngầm 1 lúc, nếu vượt quá thì sao? Đương
nhiên là nó sẽ ở trạng thái đóng băng trạng thái chứ không hoạt động
nữa. Trên IOS thì để đảm bảo hệ thống chạy mượt nên hầu hết các ứng dụng
khi không sử dụng, tức là chuyển sang ứng dụng khác hoặc chuyển về
trang chủ thì đều bị đóng băng trạng thái đang sử dụng. Cách thức tương
tự cũng được sử dụng trên các hệ điều hành Winphone hoặc BB OS.
Tóm lại đa nhiệm trên điện thoại chỉ là sự tương đối. Nhưng nếu xét về
đa nhiệm thực nhất là Android, và nó cũng chỉ giới hạn trong bao nhiêu
ứng dụng chạy ngầm mà thôi. Còn các hệ điều hành còn lại là đa nhiệm ảo
dạng Recent Used App mà thôi. Tất cả là do hạn chế về phần cứng.
Chốt lại 1 câu chuẩn không cần chỉnh nhé. Bạn có 1 chiếc máy tính việc
bạn có điện thoại là phụ, còn nếu bạn có smartphone thì sẽ chắc chắn bạn
sẽ cần 1 chiếc máy tính. Nếu không điện thoại sẽ bị hạn chế chức năng.
Khi nào điện thoại chạy được đa nhiệm thật sự thì khả năng ta sẽ là thời
kỳ chết của PC. Đó là những gì Microsoft đang làm là hợp nhất hệ điều
hành của Máy tính, điện thoại và máy tính bảng.
Anh em nào cùng ý kiến cho mình 1 vote nhé. Thanks!
Không có nhận xét nào:
Đăng nhận xét