If we add layers to a microkernel we can assign servers to different layers. Indicate: a. The advantages of this approach. b. The disadvantages of the approach. c. Modify the class diagram of the microkernel to include the concept of layers. Here is the original diagram: Extermal Server receiveRequest Internal Server ex ecute Service receiveRequest dispa tchRequest exécuteService activates calls Microkernel execute initCommunication findReceiver crea teHandle sendMessage callInternalServer senc request initialize commnication Client Adapter callService createRequest doTask calls service Solution a. The basic idea behind micro kernels is to remove all non-essential services from the kernel, and implement them as system applications instead, thereby making the kernel as small and efficient as possible. Most microkernels provide basic process and memory management, and message passing between other services, and not much more. Security and protection can be enhanced, as most services are performed in user mode, not kernel mode. System expansion can also be easier, because it only involves adding more system applications, not rebuilding a new kernel. The basic idea is to divide the operating system into several processes each of which impement a single set of services. Each server runs in user mode provides services to the requested client. The client which can be a operating system component or a application program request service by sending message to the server. micro-kernels provide minimal process and memory management, in addition to a communication facility. Micro-kernels provide minimal process and memory management, in addition to a communication facility. On benefit of the microkernel approach is ease of extending the operating system. All new services are added to user space and consequently do not require modification of the kernel. When the kernel does have to be modified, the changes tend to be fewer, because the microkernel is a smaller kernel. The resulting operating system is easier to port from one hardware design to another. The microkernel also provided more security and reliability. So as for summary the advantages are Lower levels can be changed without affecting higher layers. Control of information using layer hierarchical rules using enforcement of security policies between layers Each core component is separate. Each layer hides existence of certain data structures, operations and hardware from higher levels. Clearly defined interfaces between each OS layer and the user applications. Can add even more security by putting fundamental functions in internal servers. Provides a good degree of security because of the well defined interfaces between servers. b. The disadvantages of this approach are as follows- It is not clear what to put in each layer. The layers are restricted to interface only with immediate neighboring layers. This restriction reduces flexibility and provides additional over head for to go through adjacen.