0% found this document useful (0 votes)
1K views4 pages

Difference Between Microkernel and Exokernel

The document compares microkernel and exokernel operating systems. It states that microkernels implement important kernel services in user-mode servers and provide better stability but slower speed, while exokernels allow programs to manage their own resources theoretically increasing speed but implement nothing in the kernel. Examples of each type of system are provided.

Uploaded by

Acharya Suyog
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
1K views4 pages

Difference Between Microkernel and Exokernel

The document compares microkernel and exokernel operating systems. It states that microkernels implement important kernel services in user-mode servers and provide better stability but slower speed, while exokernels allow programs to manage their own resources theoretically increasing speed but implement nothing in the kernel. Examples of each type of system are provided.

Uploaded by

Acharya Suyog
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 4

Difference between Microkernel and Exokernel

Microkernel Exokernel
Microkernel is a system kernel that runs itself in Exokernel is a system kernel that strives to only
protected memory space, and all drivers and providing essential functions
processes in a separate memory space.

Microkernel implements only important kernel In exokernel, there is abstraction of basic


services in trusted user-mode servers. hardware.
Microkernel provides better stability, but the Exokernel allows programs to manage their own
speed and efficiency of the program is relatively resources, theoretically increasing the speed
less. and efficiency of the program.

Microkernel implements more in kernel part and Exokernel implements nothing in kernel part
has more weight. and has lighter weight.
Example: QNX-real time OS, Unix, Example: Nemesis OS, Harmony OS,
Linux, etc. Mac OS 8, etc.
Android Operating System
The development of operating systems greatly improved the efficiency of computers. An
operating system is a collection of programs that manage the computer system’s activities.
Operating systems have eliminated much of the manual work formerly required to process
programs. Many of today’s operating systems enable processing of several jobs concurrently
and permit the computer to be left completely unattended by the operator while programs and
running. The primary chores of the operating system are management and control. The
operating system ensures that each valid incoming program is processed in an orderly fashion
and that the computer system’s resources are made available to run the programs optimally. To
help you understand the role of the operating system, we can compare its activities to those of a
receptionist working in the lobby of a large office. The receptionist’s main duties are to screen
visitors and direct them to the right people. After visitors have identified themselves
satisfactorily, the receptionist finds out what they want.
Android is a Linux based operating system. It uses native open source C libraries which power
Linux machines. All the basic operating system operations like I/O, memory management and
so on are handled by the Linux kernel. Like Java and .NET, Android uses its own run time and
virtual machine to manage application memory. Unlike either of these frameworks, the Android
run time also manages the lifetime processes.
Android is a software platform and operating system for mobile devices, based on the Linux
kernel, and developed by Google and later the Open Handset Alliance. It allows developers to
write managed code in the Java language, controlling the device via Google- developed Java
libraries. Android is available as open source. Android is a freely downloadable open source
software stack for mobile devices that includes an operating system, middleware and key
applications based on Linux and Java. Google purchased the developer of Android in 2005, and
Android was unveiled in 2007. Google released the Android code as open-source under the
Apache License. Android has numerous developers writing applications (apps) all over the
world. First of all the developers write their script in Java, and then download the apps from the
third Android is updating day by day since its release. These updates to the base operating
system mainly focusing on fixing bugs as well as adding new features to provide more
comfortable environment. Generally, each new version of the Android operating system is
developed under a code name based on a dessert item. Past updates included Cupcake and
Donut. The most recent released versions of Android are:
2.0/2.1 (Eclair), which revamped the user interface and introduced HTML5 and Exchange
ActiveSync 2.5 support.
2.2 (Froyo), which introduced speed improvements with JIT optimization and the Chrome V8
JavaScript engine, and added Wi-Fi hotspot tethering and Adobe Flash support
2.3 (Gingerbread), which refined the user interface, improved the soft keyboard and copy/paste
features, and added support for Near Field Communication
Similarly, 3.0 (Honeycomb), 4.0 (Ice cream sandwich), 4.1,4.2,4.3(Jelly Bean), 4.4 (KitKat),
5.0/5.1.1(Lollipop), 6.0 (Marshmallow), 7.0-7.1.2 (Nougat), 8.0-8.1(Oreo), 9.0(Pie), 10.0(TBD)
The features of android OS are very vast. The general features of android OS includes Storage,
Connectivity, Messaging, multiple language support, we browser, java support, multi-touch,
Bluetooth, tethering, video calling. The latest android 10 features are following:
Live Caption: Automatically caption media playing on your phone.
Smart Reply: Take action right as you reply.
Sound Amplifier: Hear what’s around you more clearly.
Each Android application runs in a separate process within its own Dalvik instance, relinquishing
all responsibility for memory and process management to the Android run time, which stops and
kills processes, necessary to manage resources. Dalvik is an open source, register-based
virtual machine (VM) that is part of the Android Operating System. The Dalvik VM executes files
in the Dalvik Executable (dex) format. Resources are simple files in xml format. Dalvik and the
Android run time sit on top of a Linux kernel that handles low-level hardware interaction
including drivers and memory management, while a set of APIs provide access to all the under-
lying services, features and hardware. A systematic examination and evaluation of data or
information is very important so that we can manage the available memory in an effective way.
For this we have DDMS in Android Studio IDE, using which we can analyze the memory being
utilized. (IDE is Integrated Development Environment which provides the platform for developing
an app in Android)
Job schedule is part of android platform and maintains background jobs of all application
installed on the device at one place allowing for optimal usage of device resources. The
scheduling in androids are:
Normal scheduling: Android is based on Linux and uses the Linux kernel’s scheduling
mechanisms for determining scheduling policies. This is also true for Java code and threads.
The Linux’s time sliced scheduling policy combines static and dynamic priorities. Processes can
be given an initial priority from 19 to -20 (very low to very high priority). This priority will assure
that higher priority processes will get more CPU time when needed. These levels are however
dynamic, low level priority tasks that do not consume their CPU time will fine their dynamic
priority increased. This dynamic behavior results is an overall better responsiveness. In terms of
dynamic priorities, it is ensured that lower priority processes will always have a lower dynamic
priority than processes with real-time priorities. Android uses two different mechanisms when
scheduling the Linux kernel to perform process level scheduling
Real-time scheduling: The standard Linux kernel provides two real-time scheduling policies,
SCHED_FIFO and SCHED_RR. The main real-time policy is SCHED_FIFO. It implements a
first-in, first-out scheduling algorithm. When a SCHED_FIFO task starts running, it continues to
run until it voluntarily yields the processor, blocks or is preempted by a higher-priority real-time
task. It has no time slices. All other tasks of lower priority will not be scheduled until it
relinquishes the CPU. Two equal-priority SCHED_FIFO tasks do not preempt each other.
SCHED_RR is like SCHED_FIFO, except that such tasks are allotted time slices based on their
priority and run until they exhaust their time slice. Non-real-time tasks use the
SCHED_NORMAL scheduling policy (older kernels had a policy named SCHED_OTHER).
Binder and priorities: The binder mechanism also propagates priorities. That is the binder
process called will run with the same priority as the caller.
JVM thread and process scheduling: An Android system will have a set of Unix processes
running. Some are native processes, but many will be processes that run a Java virtual
machine. These processes usually will be multi-threaded, All android threads are native threads
(no green threads). There are two ways to change the priority handling one by Calling
Thread.setPriority that is part of the standard Java API and contains a value from
MIN_PRIORITY (1) to MAX_PRIORITY (10). As all threads are pthreads these priorities will be
mapped to Unix process priorities (MIN_PRIORITY being 19 and MAX_PRIORITY -8).
Error handling: An Error is a subclass of Throwable that indicates serious problems that a
reasonable application should not try to catch. Most such errors are abnormal conditions. The
ThreadDeath error, though a "normal" condition, is also a subclass of Error because most
applications should not try to catch it. A method is not required to declare in its throws clause
any subclasses of Error that might be thrown during the execution of the method but not caught,
since these errors are abnormal conditions that should never occur. That is, Error and its
subclasses are regarded as unchecked exceptions for the purposes of compile-time checking of
exceptions.
Android is a much more diverse operating system than iOS and Windows Phone Mobile.
Android has grown rapidly over the past 4 years becoming the most used smartphone operating
system in the world. It’s because Android doesn't release 1 phone from 1 company with 1 new
OS every year, but countless phones from numerous companies, adding their own twist,
throughout the year, developing gradually day-by-day. Android's ability to customize is
unparalleled compared to Apple's and Microsoft's software allowing the user to change and
customize nearly every aspect of Android which most iPhone and Windows 7 users wouldn't
dream possible. I am not one to say that Android is better or worse than one OS, but is unique
and incomparable to other mobile operating systems.

References:
1. B., Kirthika & Student,. (2015). ANDROID OPERATING SYSTEM: A REVIEW.
2. Android 10. Retrieved November 17, 2019, from https://www.android.com/android-10/.
3. Dweinstein, dweinstein/android_notes. Retrieved November 17, 2019, from
https://github.com/dweinstein/android_notes/wiki/AndroidScheduling.

You might also like