Page 44 - DCAP403_Operating System
P. 44

Unit 3: Operating System Structure




          3.4.2 Client-server Model                                                             Notes

          A trend in modern operating systems is to take this idea of moving code up into higher layers
          even further, and remove as much as possible from the operating system, leaving a minimal
          kernel. The usual approach is to implement most of the operating system functions in user

          processes. To request a service, such as reading a block of a file, a user process (presently known
          as the client process) sends the request to a server process, which then does the work and sends
          back the answer.
          In Client-server Model, all the kernel does is handle the communication between clients and
          servers. By splitting the operating system up into parts, each of which only handles one fact of

          the system, such as file service, process service, terminal service, or memory service, each part
          becomes small and manageable; furthermore, because all the servers run as user-mode processes,
          and not in kernel mode, they do not have direct access to the hardware. As a consequence, if a


          bug in the file server is triggered, the file service may crash, but this will not usually bring the
          whole machine down.
          Another advantage of the client-server model is its adaptability to use in distributed system. If a
          client communicates with a server by sending it messages, the client need not know whether the
          message is handled locally in its own machine, or whether it was sent across a network to a server
          on a remote machine. As far as the client is concerned, the same thing happens in both cases: a
          request was sent and a reply came back.
                                     Figure 3.4: Client-server Model


                           Client            Memory             Network
                         application          server             server



                                 Process        File      Display
                                 server        server      server

                                                                  User

                                                                 Kernel


                                        Microkernel



                                         Hardware



          3.4.3 Exokernel

          Exokernel is an operating system kernel developed by the MIT Parallel and Distributed Operating
          Systems group, and also a class of similar operating systems.
          The idea behind exokernel is to force as few abstractions as possible on developers, enabling
          them to make as many decisions as possible about hardware abstractions.

          Applications may request specific memory addresses, disk blocks, etc. The kernel only ensures that

          the requested resource is free, and the application is allowed to access it. This low-level hardware
          access allows the programmer to implement custom abstractions, and omit unnecessary ones,




                                           LOVELY PROFESSIONAL UNIVERSITY                                    37
   39   40   41   42   43   44   45   46   47   48   49