Cách thức hoạt động đa nhiệm của 4 hệ điều hành di động hiện đại
Đa nhiệm là một trong những vấn đề người dùng điện thoại mong đợi, nhưng có phải lúc nào đa nhiệm cũng là tốt không? Bài viết này sẽ giúp bạn hiểu rõ hơn những giới hạn của đa nhiệm và cách thức 4 hệ điều hành lớn hiện nay là Android, iPhone OS 4.0, WebOS và Windows Phone 7 thực hiện nó.
Có thể nói điện thoại thông minh là 1 chiếc máy tính nhỏ nằm gọn trong lòng bàn tay của bạn, nhưng nó cũng có những điểm yếu của riêng mình khi so sánh với máy tính truyền thống. Chính những hạn chế này đã làm cho đa nhiệm trên điện thoại khó khăn hơn rất nhiều so với máy tính. Đó chính là:
-Diện tích màn hình: Bạn không thể quản lý đa nhiệm một cách tối ưu nhất khi mà màn hình chỉ có 3-4 inch.
-Thời lượng pin: Liệu bạn có muốn đánh đổi thời lượng pin còn chưa đến 1 ngày để lấy đa nhiệm không?
-CPU: Luôn luôn chậm hơn máy tính bởi vì kích thước quá nhỏ cộng với phải giới hạn để tiết kiệm pin hơn.
-Bộ nhớ: Không có nhiều, một phần cũng là để tăng thời lượng pin.
Việc thiếu vắng bộ nhớ sẽ hạn chế việc chạy nhiều phần mềm cùng một lúc. Ngoài ra, hầu hết các hệ điều hành di động hiện nay không hỗ trợ bộ nhớ ảo (bộ nhớ trao đổi, swap memory) để dùng bộ nhớ Flash của máy nhằm thay thế tạm RAM trong một số trường hợp.
Từ góc độ người dùng, đa nhiệm không khác nhiều khi bạn dùng các hệ điều hành Windows, Mac hay Linux trên máy tính. Nhưng còn trên điện thoại, các công ty đều có ý kiến riêng về đa nhiệm của mình. Chẳng hạn như Windows Mobile ngày xưa và Blackberry đều gần như mở hoàn toàn, cho phép các chương trình thứ 3 chạy đa nhiệm dễ dàng còn iPhone OS 4.0 và Windows Phone 7 lại giới hạn khá nhiều. Thậm chí ngay cả những nhân tố cơ bản như thông báo hay cách chuyển đổi giữa các chương trình cũng khác nhau.
Mà nói nhiều làm gì, bây giờ chúng ta sẽ quay trở về chủ đề chính, cách thức hoạt động đa nhiệm trên 4 hệ điều hành này.
Android:
Android có lẽ là hệ điều hành thú vị nhất để tìm hiểu về đa nhiệm, nó có một hệ thống "lai" mở rộng cửa cho phép các ứng dụng chạy nền nhưng lại được ẩn giấu đi để người dùng không phát hiện ra. Chính vì vậy mà bạn không thể chủ động quản lý ứng dụng chạy hay tắt được.
Khi bạn chuyển qua một chương trình khác, chương trình mà bạn đang chạy sẽ không bị dừng lại, toàn bô tiến trình của nó vẫn sẽ được mở cho đến khi nào máy còn chịu được. Khi Android xác định máy đang thiếu bộ nhớ, nó sẽ tự động tắt tiến trình đó đi để giải phóng tài nguyên. Trước khi tắt, trạng thái làm việc của chương trình sẽ được lưu lại để khi truy xuất lần nữa, mọi công việc bạn làm vẫn được giữ nguyên. Tất nhiên, với các quản lý này bạn sẽ không biết được chương trình đó vừa bị tắt.
Vậy các chương trình có thể làm gì khi nó chạy nền? Android có 2 công cụ cho các chương trình của bên thứ 2, đó là boardcast receivers và dịch vụ. Với Boardcast, khi một chương trình chạy nền, nó sẽ luôn được thông báo về các sự kiện nhất định, chẳng hạn như bạn đã di chuyển được 500 mét hay thời lượng pin của bạn giảm còn 47%... Đây cũng là cách thức các chương trình sử dụng cơ chế push của Google hoạt động. Gmail là một ví dụ, thay vì luôn gửi các lệnh về máy chủ để xác định email mới, nó chỉ việc ngồi chơi và chờ thông báo gửi tới là email đã đến. Với cách hoạt động này, các chương trình sẽ không sử dụng tài nguyên hệ thống nhưng vẫn sẵn sàng hoạt động khi cần thiết.
Dịch vụ có lẽ quen thuộc hơn với bạn, nó là các yêu cầu từ chương trình cho hệ thống biết là nó cần chạy những gì, trong khoảng thời gian nào, chẳng hạn như chơi nhạc, định vị...
Vậy những điều gì mà chương trình bên thế ba không thể làm khi chạy nền? Thật là thì Android cũng khá mở và hạn chế không phải là lớn. Chỉ là vì ở Android 1.0, Google hoàn toàn không đưa ra một giới hạn nào cho các chương trình nên chúng liên tục "đốt" pin của máy. Chính vì vậy mà từ Android 1.5 trở đi, tất cả các chương trình chạy nền không được sử dụng quá 5-10% công suất của CPU, ngoài ra thì các chương trình nền cũng không được phép thoát khỏi chạy nền một cách dễ dàng nữa mà phải phụ thuộc vào hệ thống cảnh báo của máy.
iPhone OS 4.0:
iPhone luôn là hệ điều hành đa nhiệm kể từ thời điểm nó ra đời, nhưng nó lại bị giới hạn trong các chương trình của chính Apple. Kể từ OS 4.0, giới hạn đó đã phần nào được giảm bớt với việc hỗ trợ đa nhiệm từ phần mềm của bên thứ 3 và cho phép chúng chạy nền. Tuy vậy, những giới hạn của OS 4.0 vẫn là khá nhiều. Cũng như Android, ý tưởng đằng sau iPhone OS là người dùng không thật sự quản lý các chương trình theo ý mình mà hệ thống sẽ làm điều đó. Tuy vậy, không có nhiều tài liệu kỹ thuật nói rõ về việc này. Dù sao, chúng ta vẫn biết được một vài kiến thức cơ bản về nó.
iPhone hoạt động theo 7 dịch vụ đa nhiệm cơ bản mà bạn đã biết trong bài giới thiệu OS 4.0 Tinh Tế đăng tải trước kia. 2 dịch vụ cơ bản là fast-app switching và task finishing sẽ được hoạt động khi một chương trình được chạy nền. Dịch vụ đầu tiên sẽ bảo đảm đóng băng chương trình lại mà không tắt nó đi, cho phép người dùng giữ nguyên những gì đang làm khi thoát khỏi chương trình. Và vì người dùng không tự mình quản lý ứng dụng nào tắt hay mở, hệ điều hành sẽ quyết định điều đó. Nó sẽ tự động tắt các chương trình ngay khi có quá nhiều thứ đang chạy, gần giống với ý tưởng của Android. Khi bạn thoát ra khỏi một chương trình mà chương trình đó vẫn đang cần phải hoạt động để hoàn tất các tác vụ thì nó sẽ thông báo cho hệ điều hành biết để không ngắt tiến trình của nó đi cho đến khi tác vụ được hoàn thành.
Các chương trình bên thứ 3 cũng được Apple cung cấp một số tính năng hạn chế khi hoạt động trong chế độ chạy nền. Điểm khác biệt lớn nhất giữa iPhone và Android là các ứng dụng nền trên iPhone không hoạt động hoàn toàn như Android mà nó dựa vào các dụng vụ của Apple cung cấp, đó chính là dịch vụ VoIP, âm thanh và địa điểm. Dịch vụ địa điểm này hoạt động theo kiểu định vị bằng các trạm phát sóng để tiết kiệm pin và GPS cho các dịch vụ dẫn đường.
Hạn chế của đa nhiệm iPhone là không một phần mềm nào thoát khỏi 7 dịch vụ trên. Chẳng hạn nếu một phần mềm nào không phải là VoIP hay Audio... nó sẽ không thể chạy nền được cho dù phần mềm đó vẫn vẫn giữ nguyên được trang thái của mình trong RAM để quay trở lại nhanh chóng hơn khi được gọi.
WebOS:
Là một trong những hệ điều hành có cách quản lý tiến trình hay nhất hiện nay, bạn thật sự tham gia vào tiến trình quản lý phần mềm trên máy. Nhìn vào cách quản lý theo card của Palm, bạn có thể nghĩ nó hoạt động giống các hệ điều hành truyền thống như Windows Mobile hay BB OS nhưng thực ra nó khá phức tạp và có nhiều khác biệt.
Khi bạn mở một card (1 chương trình), bạn có thể đẩy nó lên trên để tắt đi hoàn toàn hoặc vuốt ngang để chuyển qua chương trình khác mà không làm bất cứ việc gì thêm. Lúc này chương trình đó sẽ được làm ẩn xuống giống cách hệ điểu hành trên máy tính hoạt động. Khi này, nó sẽ vẫn hoạt động tốt nhưng bị giới hạn bởi các dịch vụ được phép sử dụng, chẳng hạn như dùng mạng dữ liệu hay sử dụng cảm biến trọng lực. Nếu bạn mở quá nhiều card cùng lúc và làm bộ nhớ bị thiếu, hệ điều hành sẽ phát ra cảnh báo.
Nằm ẩn xuống, một "ứng dụng nền thuần khiết" sẽ có thể tự mình hoạt động và chạy tối đa là 30 giây để tạo ra các yêu cầu dữ liệu, nó cũng có thể tự sắp xếp thời khóa biểu để khởi chạy khi cần thiết. Còn nếu chương trình đó đã bị đóng, nó sẽ mở một thứ mà Palm gọi là daskboard, hoạt động giống một người điều phối giao thông. Nói một cách đơn giản, tính năng của dashboard nhận biết được thông báo của hệ điều hành.
Khi chạy nền, khả năng hoạt động của các chương trình hoàn toàn khác nhau. Đã có thời Palm mở rộng cửa cho tất cả các chương trình truy cập toàn bộ phần cứng nhưng hành động này làm cho máy trở nên "đốt" pin một cách khủng khiếp. Nhận biết điều này Palm đã hạn chế nó và giờ đây lại thay đổi, làm cho mọi việc dễ chịu hơn một chút. Một chương trình chạy nền sẽ có thể chạy trong vòng 30 giây để yêu cầu sử dụng thông tin, thường là nó chỉ cần 15 giây là đã hoàn thành rồi. Những chương trình sử dụng PDK, giống các game mà Palm trình diễn ở CES thì hơi khác hơn. Vì bản thân những chương trình này có khả năng truy xuất sâu hơn vào phần cứng nên giới hạn của chúng cũng phải khác đi. Chẳng hạn như khi chúng chạy nền, bộ nhớ sử dụng sẽ được hạn chế và chip đồ họa sẽ bị tắt.
Windows Phone 7:
Microsoft đã quay ngược 180 độ, họ đã từng có một trong những hệ điều hành đa nhiệm mở nhất là Windows Mobile nhưng giờ đây, Windows Phone 7 lại là hệ điều hành hạn chế nhất. Mục tiêu của họ là thiết kế Windows Phone 7 sao cho người dùng có những trải nghiệm tốt nhất mà không cần đụng đến đa nhiệm.
Khi bạn chuyển qua một chương trình khác, chương trình hiện tại sẽ không bị tắt đi hoàn toàn mà được lưu trạng thái vào bộ nhớ rồi đóng băng tại đó chờ đợi fast-app switching, giống với cách Android và iPhone thực hiện. Giám đốc bộ phận truyền thông di động của Microsoft, ông Aaron Woodman cho biết: "Khi bạn thoát một chương trình nào đó, tài nguyên hệ thống sẽ được giải phóng nếu hệ điều hành yêu cầu nhưng bạn vẫn có thể quay lại ngay vị trí mà mình tắt chương trình. Khi hệ điều hành cần, chương trình sẽ bị đưa vào quá trình dehydrated và sẽ mở lại ngay lập tức khi bạn truy xuất nó, Microsoft gọi quá trình này là rehydrated. Xếp theo mức độ, dehydrated nằm ngay trên tắt tiến trình 1 nấc, nghĩa là rất gần với việc bị tắt rồi.
Giống như các hệ điều hành iPhone trước bản 4.0, các ứng dụng không thể hoạt động nhiều khi nó bị tắt. Lúc này, hệ điều hành chỉ có thể phát ra các cảnh bảo. Nếu bạn từng coi video trình diễn phần mềm Pandora trên Windows Phone 7, đừng mong chương trình nào cũng được đối xử như vậy, chỉ một vài đối tác cao cấp mới được làm điều đó thôi. Microsoft cũng có rất nhiều cách thức thông báo khác nhau, từ tile notificatiion để push các thông tin lên phần Live Tile ở màn hình chủ, toast notification để hiện lên một cửa sổ pop-up, chẳng hạn như là cuộc gọi cho đến raw notification để phát thông báo đến các chương trình.
Bị giới hạn rất nhiều, hầu hết các phần mềm chỉ có thể nhận và gửi thông báo khi bị ẩn xuống. Tất nhiên là các phần mềm từ "đối tác đặc biệt" sẽ có nhiều quyền hạn hơn một chút. Tuy vậy, Woodman cho biết họ có thể sẽ thay đổi cách thức tùy thuộc và bên thứ ba và người dùng.
Ngoài 4 hệ điều này, có lẽ chúng ta sẽ không đề cập đến Windows Mobile vì nó đã bị dừng phát triển, BB OS vì nó sẽ bị thay bởi OS 6.0 và Symbian vì nó đang được chuyển lên Symbian^3.
Theo Tinhte