CS710 Mobile and Pervasive Computing midterm past papers

CS710 Mobile and Pervasive Computing

midterm past papers


Question No.1      Constraints of Mobile Computing?


  1. unpredictable variation in network quality,
  2. lowered trust and robustness of mobile elements,
  3. limitations on local resources imposed by weight and size constraints, and
  4. concern for battery power consumption

Question No.2      Do you think that technical problems of other domain inherited in pervasive computing or they introduced new problems in this domain?


  1. Some of the technical problems in pervasive computing correspond to problems already identified and studied earlier in the evolution.
  2. In some of those cases, existing solutions apply directly;
  3. in other cases, the demands of pervasive computing are sufficiently different that new solutions have to be sought.
  4. There are also new problems introduced by pervasive computing that have no obvious mapping to problems studied earlier.

Question No.3       Differentiate the Thin, Thick and Autonomous- Client Application?


  1. A thin-client application is a networked application in which the user interface rendering component is executing on the user’s device, whereas the rest of the application is executing on a networked computer.
  2. In a thin-client application, views are generated on the server and then rendered on the client device by a component such as a Web browser
  3. A thick-client application, on the other hand, has significant application components executing on the user’s device.
  4. In a thick-client application, the model still resides on a server, perhaps accessed through Web services, but the rest of the application resides on the client device
  5. An autonomous-client application resides entirely on the client device. It maintains its own fully functional model, which may be synchronized from time to time with replicas of the model on a server

Question No.4       What are the factors/issue in context-aware application?


  1. Context-aware applications have three sources of complexity:
    1. The heterogeneous nature of data sources
    2. The dynamic nature of context sources
    3. The multiple sources of potentially low-level context data

Question No.5       What is role of middle ware in Symbian?


  1. Provides higher-level generic APIs usable by programs in the application layer
  2. Includes native UI frameworks, application lifecycle, higher-level protocols and data handling, etc
  3. Middleware components are independent of the hardware platform

MW APIs are not used by the OS layer

Two levels:

  • generic: Services intended for any class of application

Examples: Text entry, security and GUI widgets are expected to be used by
most apps

  • This level and below is a general purpose computer
  • specific: Services intended for a specific class of application

Examples: Presence is mainly used by instant messaging apps, the Phone Server is expected to only be used by a Phone application

  • This level and below is sufficient for phone application development

Question No.6       What is role of OS model in Symbian?


  1. UI Framework Layer
    1. UI Framework layer provides the frameworks and libraries for constructing a user interface
  2. The Application Services Layer
    1. System-level services Text Handling
    2. Services that support generic types of application, Alarm Server, data synchronization services, Printing Support

Services based on more generic but application-centric technologies, mail, messaging and browsing

Question No.7       How Dalvik Virtual Machine works in Android?



  1. Performance requirements on handsets are severe
  2. Packages in Android, are full-featured and extensive
  3. These system libraries might use as much as 10 to 20MB (even with the optimized JVM)
    1. Welcome to Dalvik JVM :It reuses duplicate information from multiple class files, effectively reducing the space requirement (uncompressed) by half from a traditional .jar file
    2. Many of Android’s core libraries, including the graphics libraries, are implemented in C and C++
    3. Fine-tuned the garbage collection
    4. Dalvik VM uses a different kind of assembly-code generation use of registers rather than stack
    5. Used to write all the classes or core system services
    6. Services that are essential to the Android platform
    7. Behind the scenes – applications typically donʼt access them directly
    8. Androidʼs custom clean-room implementation virtual Machine
    9. Provides application portability and runtime consistency
    10. Runs optimized file format (.dex) and Dalvik bytecode
    11. Java .class / .jar files converted to .dex at build time

Question No.8       What are the functions of Native Servers?


Surface Flinger

    1. Provides system-wide surface “composer”, handling all surface rendering to frame buffer device
    2. Can combine 2D and 3D surfaces and surfaces from multiple applications Libraries
    3. Surfaces passed as buffers via Binder IPC calls
    4. Can use OpenGL ES and 2D hardware accelerator for its compositions
  1. Audio Flinger
    1. Manages all audio output devices
    2. Processes multiple audio streams into PCM audio out paths
    3. Handles audio routing to various outputs

Question No.9       How Run Time power management works in android?


Android Kernel – Power Management

  1. Mobile devices run on battery power
  2. Batteries have limited capacity
  3. Built on top of standard Linux Power Management (PM)
  4. More aggressive power management policy
  5. Components make requests to keep the power on through “wake locks”
  6. Supports different types of wake locks

Question No.10     Describe the areas in android that are enhanced than Linux kernel?

Answer :

Android Linux Kernel Enhancement

  1. Alarm
  2. Ashmem
  3. Binder
  4. Power Management
  5. Low Memory Killer
  6. Kernel Debugger
  7. Logger

Question No.11     Why Hardware Abstraction Libraries (HAL) is used in android?


  1. Why do we need a user-space HAL?
    1. Not all components have standardized kernel driver interfaces
    2. Kernel drivers are GPL which exposes any proprietary IP
    3. Android has specific requirements for hardware drivers

Question No.12     Describe the role of android native libraries?


Android Native Libraries – libc

  1. Bionic libc is Custom c run time implementation, optimized for embedded use.
  2. License: keep GPL out of user-space
  3. Size: will load in each process, so it needs to be small
  4. Fast: limited CPU power means we need to be fast

Question No.13     Describe function libraries of android?


Android Native Libraries – Function Libraries

  1. These are libraries that do most of the heavy lifting
  2. Providing a lot of power behind Android platform
  3. Abstracted by the higher level API seen in application framework.
  4. WebKit – Browser Engine
  5. Media Framework – built on top of a set of media libraries, including OpenCore
  6. SQLite – Open Source Relational Database

Question No.14     What are the silent features of EKA2 ?


  1. EKA2 (EPOC Kernel Architecture 2) is the second-generation Symbian platform Kernel
  2. Like its predecessor it has pre-emptive multithreading and full memory protection. The main differences are:
    1. Real-Time guarantees (each API call is quick, but more importantly, time-bound)
    2. Multiple threads inside the kernel as well as outside
    3. Pluggable memory models, allowing better support for later generations of ARM Instruction set
    4. A “nanokernel” which provides the most basic OS facilities upon which other “personality layers” can be built

Question No.15     How would be able to interpret the run time walk through of android?


  1. System Startup
    1. Bootloader
    2. Kernel
    3. Init
    4. Zygote
    5. System Server
    6. Activity Manager
    7. Launcher (Home)

Question No.16     What is .apk in android?


.apk means android package which include following:-

  1. .dex files
  2. Resources .arsc
  3. Un-compiled resources
  4. xml

Question No.17     What is JNI?


Java Native Interface (JNI) is a programming framework that enables Java code running in a Java Virtual Machine (JVM) to call and be called by native applications (programs specific to a hardware and operating system platform) and libraries written in other languages such as C, C++ and assembly.