1 / 31

MAJOR DESIGN ISSUES

MAJOR DESIGN ISSUES. Chetan V. Kokate CSc8320 – Advanced Operating Systems (SECTION 2.6) FALL 2008. OVERVIEW. Transparency Flexibility Reliability Performance Scalability Naming Replication Synchronization Communication Model Security. Discussion.

keely
Télécharger la présentation

MAJOR DESIGN ISSUES

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. MAJOR DESIGN ISSUES Chetan V. Kokate CSc8320 – Advanced Operating Systems (SECTION 2.6) FALL 2008

  2. OVERVIEW • Transparency • Flexibility • Reliability • Performance • Scalability • Naming • Replication • Synchronization • Communication Model • Security

  3. Discussion • The General Description of the Issues • The Recent Research • How these issues are handled in reality. • The developments that have taken place in different types of Operating System with respect to the issues. • Future trends.

  4. APPLICABILITY • There are various types of Advanced Operating Systems. Though all the Major Design Issues will be applicable to most of the Operating Systems there will be some differences in the way they are applied. • Let us understand the Different Types of Advanced Operating Systems to understand the Major Design Issues better.

  5. Types of Advanced Operating System: • Normal Operating System An operating system, or OS, is a software program that enables the computer hardware to communicate and operate with the computer software. • Distributed Operating Systems Integration of system services presenting a transparent view of a multiple computer system with distributed resources and control. Consisting of concurrent processes accessing distributed shared or replicated resources through message passing in a network environment.

  6. Massively Distributed Operating Systems Massively Distributed Systems are the next step in the development of computing. They are systems which will connect billions of nodes. Example: Network of Workstations • Web operating Systems WebOS and Web operating system are terms that describe network services for internet scale distributed computing. The scale of the web operating system extends across the internet, like the web. Example : Amoeba (Modification stalled in February 2001)

  7. Multiprocessor Operating Systems For the most part, multiprocessor operating systems are just regular operating systems. They handle system calls, do memory management, provide a file system, and manage I/O devices. Nevertheless, there are some areas in which they have unique features. These include process synchronization, resource management, and scheduling. • Database Operating Systems Database systems place increased demands on an operating system to efficiently support: concept of a transactions, manage large volumes of data, concurrency control, system failure control. Example : Pick Operating System (1965 & still used till date but with limitations)

  8. Real-time Operating Systems A real-time operating system is a multitasking operating system intended for real-time applications. Such applications include embedded systems (programmable thermostats, household appliance controllers, mobile telephones), industrial robots, spacecraft, industrial control. Example: QNX (1982 & 2007) RTLinux (February 2007)

  9. Transparency Multiple Computers are used but the user gets a view of only single system being used. Makes the network invisible to user/applications. Various degrees of transparency • Access Transparency • Location Transparency • Name Transparency • Data Transparency • Execution Transparency • Performance Transparency

  10. Flexibility • Flexible operating systems are taken to be those whose designs have been motivated to some degree by the desire to allow the system to be tailored, either statically or dynamically, to the requirements of specific applications or application domains. • So how does it work ? • Let us review recent research into flexible system software and the different approaches to achieving flexibility that are available. • The use of object orientation is a common feature of many flexible operating systems.

  11. NeXTSTEP During the late 1980s, Steve Jobs formed the computer company NeXT One of NeXT's first tasks was to design an object-oriented operating system, NEXTSTEP. • Choices Choices is an object-oriented operating system that was developed at the University of Illinois at Urbana-Champaign. It is written in C++ and uses objects to represent core kernel components like the CPU, processes and so on. Inheritance is used to separate the kernel into portable machine independent classes and small non-portable dependent classes. Choices has been ported to and runs on SPARC, x86 and ARM.

  12. Syllable Syllable makes heavy use of C++ and for that reason is often compared to BeOS. • Java-based operating systems Given that Sun Microsystems‘ Java today one of the most dominant object-oriented languages, it is no surprise that Java-based operating systems have been attempted. In this area, ideally, the kernel would consist of the bare minimum required to support a JVM. This is the only component of such an operating system that would have to be written in a language other than Java. Built upon that JVM and basic hardware support, it would be possible to write the rest of the operating system in Java; even parts of the system that are more traditionally written in a lower-level language such as C, for example device drivers , can be written in Java. Examples of attempts at such an operating system include Jnode and JavaOS.

  13. Reliability • In general, reliability is the ability of a person or system to perform and maintain its functions in routine circumstances, as well as hostile or unexpected circumstances. •  Reliability is generally considered important by end users. • Not all companies making operating systems have a similar standard. Even among operating systems where reliability is a priority, there is a range of quality. • Also, an operating system may be extremely reliable at one kind of task and extremely unreliable at another.

  14. Current operating systems have two characteristics that make them unreliable and insecure. 1> They are huge 2> They have very poor fault isolation. • The Linux kernel has more than 2.5 million lines of code; the Windows XP kernel is more than twice as large.

  15. As per IEEE COMPUTER SOCIETY : Microkernels—long discarded as unacceptable because of their lower performance compared with monolithic kernels—might be making a comeback in operating systems due to their potentially higher reliability, which many researchers now regard as more important than performance. • Researchers are endeavoring to produce more reliable operating systems.

  16. Performance • The performance of computer hardware typically increases monotonically with time. • Even if the same could be said of software, the rate at which software performance improves is usually very slow compared to that of hardware. • In fact, many might opine that there is plenty of software whose performance has deteriorated consistently with time. • Moreover, it is rather difficult to establish an objective performance metric for software as complex as an operating system: a "faster OS" is a very subjective, context dependent phrase. • How to increase performance of an Operating System ?

  17. Few Things Apple Did To Make Mac OS X Faster • Hot File Clustering • Working Set Detection • Helping Developers develop code faster • Instant On

  18. Apple computers do not hibernate. Rather, when they "sleep", enough devices (in particular, the dynamic RAM) are kept alive (at the cost of some battery life, if the computer is running on battery power). • Consequently, upon wakeup, the user perceives instant-on behavior: a very desirable effect. • Similarly, by default the system tries to keep network connections alive even if the machine sleeps. • For example, if you login (via SSH, say) from one PowerBook to another, and both of them go to sleep, your login should stay alive within the constraints of the protocols.

  19. Scalability • Scalability is a desirable property of a system, a network, or a process, which indicates its ability to either handle growing amounts of work in a graceful manner, or to be readily enlarged. • A system whose performance improves after adding hardware, proportionally to the capacity added, is said to be a scalable system.

  20. NOW • Network of Workstations, popularly known as NOW, is quickly becoming a cost-effective and scalable alternative for high-end engineering computing. • Interconnection of clusters involves different aspects such as resource management, global scheduling, and network bandwidth considerations. • Multi-level clustering is essential and practical for large scale global distributed computing across several co-operative and geographically dispersed user groups. • A typical cluster environment gives a virtual supercomputer view of its networked workstations facilitating the following functions: i) load balancing among nodes ii) scheduling: match making of user jobs based on some priority schemes and node availability iii) providing transparent job execution environment, and iv) cluster and job management capabilities.

  21. Naming • The resources in a distributed system are spread across different computers and a naming scheme has to be devised so that users can discover and refer to the resources that they need. • An example of such a naming scheme is the URL (Uniform Resource Locator) that is used to identify WWW pages. If a meaningful and universally understood identification scheme is not used then many of these resources will be inaccessible to system users.

  22. Replication • Replication is one of the oldest and most important topics in the overall area of distributed systems. • Whether one replicates data or computation, the objective is to have some group of processes that handle incoming events. • If we replicate data, these processes are passive and operate only to maintain the stored data, reply to read requests, and apply updates. • When we replicate computation, the usual goal is to provide fault-tolerance.

  23. Replication models in distributed systems • Transactional Replication This is the model for replicating transactional data, for example a database or some other form of transactional storage structure. • Virtual Synchrony This computational model is used when a group of processes cooperate to replicate in-memory data or to coordinate actions. The model defines a new distributed entity called a process group. • State Machine Replication This model assumes that replicated process is a deterministic finite state machine and that atomic broadcast of every event is possible

  24. Synchronization • Processes require coordination to achieve synchronization • Types of synchronization: • Barrier synchronization Process must reach a common synchronization point before they can continue. • Condition coordination A process must wait for a condition that will be set asynchronously by other interacting processes to maintain some ordering of execution. • Mutual exclusion Concurrent processes must have mutual exclusion when accessing a critical shared resource. Example: Logical Clocks ----A logical clock is a mechanism for capturing chronological and causal relationships in a distributed system

  25. Communication Model • Lower level: message passing • Higher level logical communication provides transparency. • Client/server model communication. • All system communication are seen as a pair of message exchanges between the client and server. • Remote Procedure Call, (RPC), communication. • RPC built on top of client/server model. • Request/reply message passing as used in programming procedure-call concept.

  26. SECURITY • Authentication Clients , Servers and messages must be authenticated. • Authorization Access control has to be performed across a physical network with heterogeneous components under different administrative units using different security models.

  27. Operating system authentication (OS authentication) is a way of using operating system login credentials to authenticate database users. • One aspect of OS authentication can be used to authenticate database administrators. • OS authentication is needed because there must be a way to identify administrative users even if the database is shut down.

  28. REFERENCES [1] Randy Chow & Theodore Johnson, 1997,“Distributed Operating Systems & Algorithms”, (Addison-Wesley), p. 45 to 50. [2] A. S. Tanenbaum, “Distributed Operating Systems”,Prentice Hall. [3] 17th USENIX Security Symposium “Work In Progress Reports” http://www.usenix.org/events/sec08/wips.html [4] IEEE Computer Society Articles http://www.computer.org/portal/site/ieeecs/index.jsp [5 ]Wikipedia. http://en.wikipedia.org/wiki

  29. [6]  Making An Operating System Faster http://www.kernelthread.com/mac/apme/optimizations/ [7] Scalability Issues in Cluster Computing Operating Systems http://www.crhc.uiuc.edu/~steve/wcbc99/wcbc-99-nih.pdf [8] The Amoeba Distributed Operating System http://www.cs.vu.nl/pub/amoeba/amoeba.html [9] MySQL Cluster Overview http://dev.mysql.com/doc/refman/4.1/en/mysql-cluster- overview.html

  30. THANK YOU

More Related