Operating system designed to operate on multiple systems over a network computer
A distributed operating system is system software over a collection of independent software, networked, communicating, and physically separate computational nodes. They handle jobs which are serviced by multiple CPUs.[1] Each individual node holds a specific software subset of the global aggregate operating system. Each subset is a composite of two distinct service provisioners.[2] The first is a ubiquitous minimal kernel, or microkernel, that directly controls that node's hardware. Second is a higher-level collection of system management components that coordinate the node's individual and collaborative activities. These components abstract microkernel functions and support user applications.[3]
The microkernel and the management components collection work together. They support the system's goal of integrating multiple resources and processing functionality into an efficient and stable system.[4] This seamless integration of individual nodes into a global system is referred to as transparency, or single system image; describing the illusion provided to users of the global system's appearance as a single computational entity.
Description
A distributed OS provides the essential services and functionality required of an OS but adds attributes and particular configurations to allow it to support additional requirements such as increased scale and availability. To a user, a distributed OS works in a manner similar to a single-node, monolithic operating system. That is, although it consists of multiple nodes, it appears to users and applications as a single-node.
Separating minimal system-level functionality from additional user-level modular services provides a "separation of mechanism and policy". Mechanism and policy can be simply interpreted as "what something is done" versus "how something is done," respectively. This separation increases flexibility and scalability.
Overview
The kernel
At each locale (typically a node), the kernel provides a minimally complete set of node-level utilities necessary for operating a node's underlying hardware and resources. These mechanisms include allocation, management, and disposition of a node's resources, processes, communication, and input/output management support functions.[5] Within the kernel, the communications sub-system is of foremost importance for a distributed OS.[3]
In a distributed OS, the kernel often supports a minimal set of functions, including low-level address space management, thread management, and inter-process communication (IPC). A kernel of this design is referred to as a microkernel.[6][7] Its modular nature enhances reliability and security, essential features for a distributed OS.[8]
System management
System management components are software processes that define the node's policies. These components are the part of the OS outside the kernel. These components provide higher-level communication, process and resource management, reliability, performance and security. The components match the functions of a single-entity system, adding the transparency required in a distributed environment.[3]
The distributed nature of the OS requires additional services to support a node's responsibilities to the global system. In addition, the system management components accept the "defensive" responsibilities of reliability, availability, and persistence. These responsibilities can conflict with each other. A consistent approach, balanced perspective, and a deep understanding of the overall system can assist in identifying diminishing returns. Separation of policy and mechanism mitigates such conflicts.[9]
Working together as an operating system
The architecture and design of a distributed operating system must realize both individual node and global system goals. Architecture and design must be approached in a manner consistent with separating policy and mechanism. In doing so, a distributed operating system attempts to provide an efficient and reliable distributed computing framework allowing for an absolute minimal user awareness of the underlying command and control efforts.[8]
The multi-level collaboration between a kernel and the system management components, and in turn between the distinct nodes in a distributed operating system is the functional challenge of the distributed operating system. This is the point in the system that must maintain a perfect harmony of purpose, and simultaneously maintain a complete disconnect of intent from implementation. This challenge is the distributed operating system's opportunity to produce the foundation and framework for a reliable, efficient, available, robust, extensible, and scalable system. However, this opportunity comes at a very high cost in complexity.
The price of complexity
In a distributed operating system, the exceptional degree of inherent complexity could easily render the entire system an anathema to any user. As such, the logical price of realizing a distributed operation system must be calculated in terms of overcoming vast amounts of complexity in many areas, and on many levels. This calculation includes the depth, breadth, and range of design investment and architectural planning required in achieving even the most modest implementation.[10]
These design and development considerations are critical and unforgiving. For instance, a deep understanding of a distributed operating system's overall architectural and design detail is required at an exceptionally early point.[1] An exhausting array of design considerations are inherent in the development of a distributed operating system. Each of these design considerations can potentially affect many of the others to a significant degree. This leads to a massive effort in balanced approach, in terms of the individual design considerations, and many of their permutations. As an aid in this effort, most rely on documented experience and research in distributed computing power.
History
Research and experimentation efforts began in earnest in the 1970s and continued through the 1990s, with focused interest peaking in the late 1980s. A number of distributed operating systems were introduced during this period; however, very few of these implementations achieved even modest commercial success.
Fundamental and pioneering implementations of primitive distributed operating system component concepts date to the early 1950s.[11][12][13] Some of these individual steps were not focused directly on distributed computing, and at the time, many may not have realized their important impact. These pioneering efforts laid important groundwork, and inspired continued research in areas related to distributed computing.[14][15][16][17][18][19]
In the mid-1970s, research produced important advances in distributed computing. These breakthroughs provided a solid, stable foundation for efforts that continued through the 1990s.
The accelerating proliferation of multi-processor and multi-core processor systems research led to a resurgence of the distributed OS concept.
The DYSEAC
One of the first efforts was the DYSEAC, a general-purpose synchronous computer. In one of the earliest publications of the Association for Computing Machinery, in April 1954, a researcher at the National Bureau of Standards – now the National Institute of Standards and Technology (NIST) – presented a detailed specification of the DYSEAC. The introduction focused upon the requirements of the intended applications, including flexible communications, but also mentioned other computers:
Finally, the external devices could even include other full-scale computers employing the same digital language as the DYSEAC. For example, the SEAC or other computers similar to it could be harnessed to the DYSEAC and by use of coordinated programs could be made to work together in mutual cooperation on a common task… Consequently[,] the computer can be used to coordinate the diverse activities of all the external devices into an effective ensemble operation.
— ALAN L. LEINER, System Specifications for the DYSEAC
The specification discussed the architecture of multi-computer systems, preferring peer-to-peer rather than master-slave.
Each member of such an interconnected group of separate computers is free at any time to initiate and dispatch special control orders to any of its partners in the system. As a consequence, the supervisory control over the common task may initially be loosely distributed throughout the system and then temporarily concentrated in one computer, or even passed rapidly from one machine to the other as the need arises. …the various interruption facilities which have been described are based on mutual cooperation between the computer and the external devices subsidiary to it, and do not reflect merely a simple master-slave relationship.
— ALAN L. LEINER, System Specifications for the DYSEAC
This is one of the earliest examples of a computer with distributed control. The Dept. of the Army reports[20] certified it reliable and that it passed all acceptance tests in April 1954. It was completed and delivered on time, in May 1954. This was a "portable computer", housed in a tractor-trailer, with 2 attendant vehicles and 6 tons of refrigeration capacity.
Lincoln TX-2
Described as an experimental input-output system, the Lincoln TX-2 emphasized flexible, simultaneously operational input-output devices, i.e., multiprogramming. The design of the TX-2 was modular, supporting a high degree of modification and expansion.[12]
The system employed The Multiple-Sequence Program Technique. This technique allowed multiple program counters to each associate with one of 32 possible sequences of program code. These explicitly prioritized sequences could be interleaved and executed concurrently, affecting not only the computation in process, but also the control flow of sequences and switching of devices as well. Much discussion related to device sequencing.
Similar to DYSEAC the TX-2 separately programmed devices can operate simultaneously, increasing throughput. The full power of the central unit was available to any device. The TX-2 was another example of a system exhibiting distributed control, its central unit not having dedicated control.
Intercommunicating Cells
One early effort at abstracting memory access was Intercommunicating Cells, where a cell was composed of a collection of memory elements. A memory element was basically a binary electronic flip-flop or relay. Within a cell there were two types of elements, symbol and cell. Each cell structure stores data in a string of symbols, consisting of a name and a set of parameters. Information is linked through cell associations.[13]
The theory contended that addressing is a wasteful and non-valuable level of indirection. Information was accessed in two ways, direct and cross-retrieval. Direct retrieval accepts a name and returns a parameter set. Cross-retrieval projects through parameter sets and returns a set of names containing the given subset of parameters. This was similar to a modified hash tabledata structure that allowed multiple values (parameters) for each key (name).
Cellular memory would have many advantages:
A major portion of a system's logic is distributed within the associations of information stored in the cells,
This flow of information association is somewhat guided by the act of storing and retrieving,
The time required for storage and retrieval is mostly constant and completely unrelated to the size and fill-factor of the memory
Cells are logically indistinguishable, making them both flexible to use and relatively simple to extend in size
This configuration was ideal for distributed systems. The constant-time projection through memory for storing and retrieval was inherently atomic and exclusive. The cellular memory's intrinsic distributed characteristics would be invaluable. The impact on the user, hardware/device, or Application programming interfaces was indirect. The authors were considering distributed systems, stating:
We wanted to present here the basic ideas of a distributed logic system with... the macroscopic concept of logical design, away from scanning, from searching, from addressing, and from counting, is equally important. We must, at all cost, free ourselves from the burdens of detailed local problems which only befit a machine low on the evolutionary scale of machines.
— Chung-Yeol (C. Y.) Lee, Intercommunicating Cells, Basis for a Distributed Logic Computer
Foundational work
Coherent memory abstraction
Algorithms for scalable synchronization on shared-memory multiprocessors [21]
File System abstraction
Measurements of a distributed file system[22] Memory coherence in shared virtual memory systems [23]
Transactional Memory Composable memory transactions[25] Transactional memory: architectural support for lock-free data structures [26] Software transactional memory for dynamic-sized data structures[27] Software transactional memory[28]
Persistence abstraction
OceanStore: an architecture for global-scale persistent storage [29]
Coordinator abstraction
Weighted voting for replicated data [30] Consensus in the presence of partial synchrony [31]
Reliability abstraction
Sanity checks The Byzantine Generals Problem [32] Fail-stop processors: an approach to designing fault-tolerant computing systems [33]
Recoverability Distributed snapshots: determining global states of distributed systems[34] Optimistic recovery in distributed systems [35]
To better illustrate this point, examine three system architectures; centralized, decentralized, and distributed. In this examination, consider three structural aspects: organization, connection, and control. Organization describes a system's physical arrangement characteristics. Connection covers the communication pathways among nodes. Control manages the operation of the earlier two considerations.
Organization
A centralized system has one level of structure, where all constituent elements directly depend upon a single control element. A decentralized system is hierarchical. The bottom level unites subsets of a system's entities. These entity subsets in turn combine at higher levels, ultimately culminating at a central master element. A distributed system is a collection of autonomous elements with no concept of levels.
Connection
Centralized systems connect constituents directly to a central master entity in a hub and spoke fashion. A decentralized system (aka network system) incorporates direct and indirect paths between constituent elements and the central entity. Typically this is configured as a hierarchy with only one shortest path between any two elements. Finally, the distributed operating system requires no pattern; direct and indirect connections are possible between any two elements. Consider the 1970s phenomena of “string art” or a spirograph drawing as a fully connected system, and the spider's web or the Interstate Highway System between U.S. cities as examples of a partially connected system.
Control
Centralized and decentralized systems have directed flows of connection to and from the central entity, while distributed systems communicate along arbitrary paths. This is the pivotal notion of the third consideration. Control involves allocating tasks and data to system elements balancing efficiency, responsiveness, and complexity.
Centralized and decentralized systems offer more control, potentially easing administration by limiting options. Distributed systems are more difficult to explicitly control, but scale better horizontally and offer fewer points of system-wide failure. The associations conform to the needs imposed by its design but not by organizational chaos
Design considerations
Transparency
Transparency or single-system image refers to the ability of an application to treat the system on which it operates without regard to whether it is distributed and without regard to hardware or other implementation details. Many areas of a system can benefit from transparency, including access, location, performance, naming, and migration. The consideration of transparency directly affects decision making in every aspect of design of a distributed operating system. Transparency can impose certain requirements and/or restrictions on other design considerations.
Systems can optionally violate transparency to varying degrees to meet specific application requirements. For example, a distributed operating system may present a hard drive on one computer as "C:" and a drive on another computer as "G:". The user does not require any knowledge of device drivers or the drive's location; both devices work the same way, from the application's perspective. A less transparent interface might require the application to know which computer hosts the drive. Transparency domains:
Location transparency – Location transparency comprises two distinct aspects of transparency, naming transparency and user mobility. Naming transparency requires that nothing in the physical or logical references to any system entity should expose any indication of the entity's location, or its local or remote relationship to the user or application. User mobility requires the consistent referencing of system entities, regardless of the system location from which the reference originates.[8]: 20
Access transparency – Local and remote system entities must remain indistinguishable when viewed through the user interface. The distributed operating system maintains this perception through the exposure of a single access mechanism for a system entity, regardless of that entity being local or remote to the user. Transparency dictates that any differences in methods of accessing any particular system entity—either local or remote—must be both invisible to, and undetectable by the user.[3]: 84
Migration transparency – Resources and activities migrate from one element to another controlled solely by the system and without user/application knowledge or action.[36]: 16
Replication transparency – The process or fact that a resource has been duplicated on another element occurs under system control and without user/application knowledge or intervention.[36]: 16
Concurrency transparency – Users/applications are unaware of and unaffected by the presence/activities of other users.[36]: 16
Failure transparency – The system is responsible for detection and remediation of system failures. No user knowledge/action is involved other than waiting for the system to resolve the problem.[9]: 30
Performance Transparency – The system is responsible for the detection and remediation of local or global performance shortfalls. Note that system policies may prefer some users/user classes/tasks over others. No user knowledge or interaction. is involved.[8]: 23
Size/Scale transparency – The system is responsible for managing its geographic reach, number of nodes, level of node capability without any required user knowledge or interaction.[8]: 23
Revision transparency – The system is responsible for upgrades and revisions and changes to system infrastructure without user knowledge or action.[9]: 30
Control transparency – The system is responsible for providing all system information, constants, properties, configuration settings, etc. in a consistent appearance, connotation, and denotation to all users and applications.[3]: 84
Data transparency – The system is responsible for providing data to applications without user knowledge or action relating to where the system stores it.[3]: 85
Parallelism transparency – The system is responsible for exploiting any ability to parallelize task execution without user knowledge or interaction. Arguably the most difficult aspect of transparency, and described by Tanenbaum as the "Holy grail" for distributed system designers.[37]: 23–25
Inter-process communication
Inter-Process Communication (IPC) is the implementation of general communication, process interaction, and dataflow between threads and/or processes both within a node, and between nodes in a distributed OS. The intra-node and inter-node communication requirements drive low-level IPC design, which is the typical approach to implementing communication functions that support transparency. In this sense, Interprocess communication is the greatest underlying concept in the low-level design considerations of a distributed operating system.
Process management
Process management provides policies and mechanisms for effective and efficient sharing of resources between distributed processes. These policies and mechanisms support operations involving the allocation and de-allocation of processes and ports to processors, as well as mechanisms to run, suspend, migrate, halt, or resume process execution. While these resources and operations can be either local or remote with respect to each other, the distributed OS maintains state and synchronization over all processes in the system.
As an example, load balancing is a common process management function. Load balancing monitors node performance and is responsible for shifting activity across nodes when the system is out of balance. One load balancing function is picking a process to move. The kernel may employ several selection mechanisms, including priority-based choice. This mechanism chooses a process based on a policy such as 'newest request'. The system implements the policy
Resource management
Systems resources such as memory, files, devices, etc. are distributed throughout a system, and at any given moment, any of these nodes may have light to idle workloads. Load sharing and load balancing require many policy-oriented decisions, ranging from finding idle CPUs, when to move, and which to move. Many algorithms exist to aid in these decisions; however, this calls for a second level of decision making policy in choosing the algorithm best suited for the scenario, and the conditions surrounding the scenario.
Reliability
Distributed OS can provide the necessary resources and services to achieve high levels of reliability, or the ability to prevent and/or recover from errors. Faults are physical or logical defects that can cause errors in the system. For a system to be reliable, it must somehow overcome the adverse effects of faults.
The primary methods for dealing with faults include fault avoidance, fault tolerance, and fault detection and recovery. Fault avoidance covers proactive measures taken to minimize the occurrence of faults. These proactive measures can be in the form of transactions, replication and backups. Fault tolerance is the ability of a system to continue operation in the presence of a fault. In the event, the system should detect and recover full functionality. In any event, any actions taken should make every effort to preserve the single system image.
Availability
Availability is the fraction of time during which the system can respond to requests.
Performance
Many benchmark metrics quantify performance; throughput, response time, job completions per unit time, system utilization, etc. With respect to a distributed OS, performance most often distills to a balance between process parallelism and IPC.[citation needed] Managing the task granularity of parallelism in a sensible relation to the messages required for support is extremely effective.[citation needed] Also, identifying when it is more beneficial to migrate a process to its data, rather than copy the data, is effective as well.[citation needed]
Synchronization
Cooperating concurrent processes have an inherent need for synchronization, which ensures that changes happen in a correct and predictable fashion. Three basic situations that define the scope of this need:
one or more processes must synchronize at a given point for one or more other processes to continue,
one or more processes must wait for an asynchronous condition in order to continue,
or a process must establish exclusive access to a shared resource.
Flexibility in a distributed operating system is enhanced through the modular characteristics of the distributed OS, and by providing a richer set of higher-level services. The completeness and quality of the kernel/microkernel simplifies implementation of such services, and potentially enables service providers greater choice of providers for such services.[citation needed]
Research
Replicated model extended to a component object model
Architectural Design of E1 Distributed Operating System[38] The Cronus distributed operating system[39] Design and development of MINIX distributed operating system[40]
Complexity/Trust exposure through accepted responsibility
Scale and performance in the Denali isolation kernel.[41]
Multi/Many-core focused systems
The multikernel: a new OS architecture for scalable multicore systems.[42]
^Using LOTOS for specifying the CHORUS distributed operating system kernel Pecheur, C. 1992. Using LOTOS for specifying the CHORUS distributed operating system kernel. Comput. Commun. 15, 2 (Mar. 1992), 93-102.
^COOL: kernel support for object-oriented environments Habert, S. and Mosseri, L. 1990. COOL: kernel support for object-oriented environments. In Proceedings of the European Conference on Object-Oriented Programming on Object-Oriented Programming Systems, Languages, and Applications (Ottawa, Canada). OOPSLA/ECOOP '90. ACM, New York, NY, 269-275.
^Surajbali, B., Coulson, G., Greenwood, P., and Grace, P. 2007. Augmenting reflective middleware with an aspect orientation support layer. In Proceedings of the 6th international Workshop on Adaptive and Reflective Middleware: Held At the ACM/IFIP/USENIX international Middleware Conference (Newport Beach, CA, November 26–30, 2007). ARM '07. ACM, New York, NY, 1-6.
^ abForgie, James W. (February 26–28, 1957). The Lincoln TX-2 Input-Output System. Western Joint Computer Conference: Techniques for Reliability. Los Angeles, California: Association for Computing Machinery. pp. 156–160. doi:10.1145/1455567.1455594. ISBN9781450378611.
^ abC. Y. Lee (December 4–6, 1962). Intercommunicating cells, basis for a distributed logic computer. Fall Joint Computer Conference. Philadelphia, Pennsylvania: Association for Computing Machinery. pp. 130–136. doi:10.1145/1461518.1461531.
^Leiner, A. L., Notz, W. A., Smith, J. L., and Weinberger, A. 1958. Organizing a network of computers to meet deadlines. In Papers and Discussions Presented At the December 9–13, 1957, Eastern Joint Computer Conference: Computers with Deadlines To Meet (Washington, D.C., December 09–13, 1957). IRE-ACM-AIEE '57
^Leiner, A. L., Smith, J. L., Notz, W. A., and Weinberger, A. 1958. PILOT, the NBS multicomputer system. In Papers and Discussions Presented At the December 3–5, 1958, Eastern Joint Computer Conference: Modern Computers: Objectives, Designs, Applications (Philadelphia, Pennsylvania, December 03–05, 1958). AIEE-ACM-IRE '58 (Eastern). ACM, New York, NY, 71-75.
^Bauer, W. F. 1958. Computer design from the programmer's viewpoint. In Papers and Discussions Presented At the December 3–5, 1958, Eastern Joint Computer Conference: Modern Computers: Objectives, Designs, Applications (Philadelphia, Pennsylvania, December 03–05, 1958). AIEE-ACM-IRE '58 (Eastern). ACM, New York, NY, 46-51.
^Leiner, A. L., Notz, W. A., Smith, J. L., and Weinberger, A. 1959. PILOT—A New Multiple Computer System. J. ACM 6, 3 (Jul. 1959), 313-335.
^Martin H. Weik, "A Third Survey of Domestic Electronic Digital Computing Systems," Ballistic Research Laboratories Report No. 1115, pg. 234-5, Aberdeen Proving Ground, Maryland, March 1961
^Baker, M. G., Hartman, J. H., Kupfer, M. D., Shirriff, K. W., and Ousterhout, J. K. 1991. Measurements of a distributed file system. In Proceedings of the Thirteenth ACM Symposium on Operating Systems Principles (Pacific Grove, California, United States, October 13–16, 1991). SOSP '91. ACM, New York, NY, 198-212.
^Li, K. and Hudak, P. 1989. Memory coherence in shared virtual memory systems. ACM Trans. Comput. Syst. 7, 4 (Nov. 1989), 321-359.
^Garcia-Molina, H. and Salem, K. 1987. Sagas. In Proceedings of the 1987 ACM SIGMOD international Conference on Management of Data (San Francisco, California, United States, May 27–29, 1987). U. Dayal, Ed. SIGMOD '87. ACM, New York, NY, 249-259.
^Harris, T., Marlow, S., Peyton-Jones, S., and Herlihy, M. 2005. Composable memory transactions. In Proceedings of the Tenth ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (Chicago, IL, USA, June 15–17, 2005). PPoPP '05. ACM, New York, NY, 48-60.
^Herlihy, M., Luchangco, V., Moir, M., and Scherer, W. N. 2003. Software transactional memory for dynamic-sized data structures. In Proceedings of the Twenty-Second Annual Symposium on Principles of Distributed Computing (Boston, Massachusetts, July 13–16, 2003). PODC '03. ACM, New York, NY, 92-101.
^Shavit, N. and Touitou, D. 1995. Software transactional memory. In Proceedings of the Fourteenth Annual ACM Symposium on Principles of Distributed Computing (Ottawa, Ontario, Canada, August 20–23, 1995). PODC '95. ACM, New York, NY, 204-213.
^Kubiatowicz, J., Bindel, D., Chen, Y., Czerwinski, S., Eaton, P., Geels, D., Gummadi, R., Rhea, S., Weatherspoon, H., Wells, C., and Zhao, B. 2000. OceanStore: an architecture for global-scale persistent storage. In Proceedings of the Ninth international Conference on Architectural Support For Programming Languages and Operating Systems (Cambridge, Massachusetts, United States). ASPLOS-IX. ACM, New York, NY, 190-201.
^Gifford, D. K. 1979. Weighted voting for replicated data. In Proceedings of the Seventh ACM Symposium on Operating Systems Principles (Pacific Grove, California, United States, December 10–12, 1979). SOSP '79. ACM, New York, NY, 150-162
^Lamport, L., Shostak, R., and Pease, M. 1982. The Byzantine Generals Problem. ACM Trans. Program. Lang. Syst. 4, 3 (Jul. 1982), 382-401.
^Schlichting, R. D. and Schneider, F. B. 1983. Fail-stop processors: an approach to designing fault-tolerant computing systems. ACM Trans. Comput. Syst. 1, 3 (Aug. 1983), 222-238.
^Chandy, K. M. and Lamport, L. 1985. Distributed snapshots: determining global states of distributed systems. ACM Trans. Comput. Syst. 3, 1 (Feb. 1985), 63-75.
^Strom, R. and Yemini, S. 1985. Optimistic recovery in distributed systems. ACM Trans. Comput. Syst. 3, 3
^L.B. Ryzhyk, A.Y. Burtsev. Architectural design of dE1 distributed operating system. System Research and Information Technologies international scientific and technical journal, October 2004, Kiev, Ukraine.
^Vinter, S. T. and Schantz, R. E. 1986. The Cronus distributed operating system. In Proceedings of the 2nd Workshop on Making Distributed Systems Work (Amsterdam, Netherlands, September 08–10, 1986). EW 2. ACM, New York, NY, 1-3.
^Ramesh, K. S. 1988. Design and development of MINIX distributed operating system. In Proceedings of the 1988 ACM Sixteenth Annual Conference on Computer Science (Atlanta, Georgia, United States). CSC '88. ACM, New York, NY, 685.
^Whitaker, A., Shaw, M., and Gribble, S. D. 2002. In Proceedings of the 5th Symposium on Operating Systems Design and Implementation
^Baumann, A., Barham, P., Dagand, P., Harris, T., Isaacs, R., Peter, S., Roscoe, T., Schüpbach, A., and Singhania, A. 2009. In Proceedings of the ACM SIGOPS 22nd Symposium on Operating Systems Principles (Big Sky, Montana, USA, October 11–14, 2009). SOSP '09.
^S. Boyd-Wickizer, H. Chen, R. Chen, Y. Mao, F. Kashoek, R. Morris, A. Pesterev, L. Stein, M. Wu, Y. Dai, Y. Zhang, and Z. Zhang. Proceedings of the 2008 Symposium on Operating Systems Design and Implementation (OSDI), December 2008.
^Almaless, G. and Wajsbürt, F. 2011. In Proceedings of the 5th national seminar of GDR SoC-SIP, Lyon, France, 2011.
^Nightingale, E. B., Hodson, O., McIlroy, R., Hawblitzel, C., and Hunt, G. 2009. In Proceedings of the ACM SIGOPS 22nd Symposium on Operating Systems Principles (Big Sky, Montana, USA, October 11–14, 2009). SOSP '09.
^Rose Liu, Kevin Klues, and Sarah Bird, University of California at Berkeley; Steven Hofmeyr, Lawrence Berkeley National Laboratory; Krste Asanović and John Kubiatowicz, University of California at Berkeley. HotPar09.
Karanvir BohraBohra pada upacara Pembukaan ManaliLahir28 Agustus 1982 (umur 41)[1]Jodhpur, Rajasthan, India[2]PekerjaanAktor, produser,[3] desainer[4]Tahun aktif1990–sekarangSuami/istriTeejay Sidhu (m. 2006)[5][6][7]Anak3Tanda tangan Karanvir Bohra (lahir 28 Agustus 1982),[1] juga dikenal sebagai Manoj Bohra,[8] adalah aktor, produser dan desainer televisi dan film India. Dia me...
International cricket tour India women's cricket team in Bangladesh in 2023 Bangladesh IndiaDates 9 – 22 July 2023Captains Nigar Sultana Harmanpreet KaurOne Day International seriesResults 3-match series drawn 1–1Most runs Fargana Hoque (181) Jemimah Rodrigues (129)Most wickets Marufa Akter (7) Devika Vaidya (6)Player of the series Fargana Hoque (Ban)Twenty20 International seriesResults India won the 3-match series 2–1Most runs Shamima Sultana (64) Harmanpreet Kaur (94...
Eugene adalah ibu kota dari Kabupaten Lane, Oregon, Amerika Serikat. Menurut Sensus 2003 Amerika Serikat, penduduk kota ini berjumlah 142.185 jiwa (daerah kota). Wali kota Eugene sejak Januari 2005 adalah Kitty Piercy. Kota ini merupakan kota terbesar ketiga di negara bagian Oregon. Kota kembar Boulder, Colorado, Amerika Serikat Kathmandu, Nepal Irkutsk, Rusia Kakegawa, Jepang Chinju, Korea lbs Negara bagian OregonSalem (ibu kota)Topik Sejarah Geografi Orang Bendera Gubernur Pemerintah K...
This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Kedron State High School – news · newspapers · books · scholar · JSTOR (March 2023) (Learn how and when to remove this template message) School in Kedron, Queensland, AustraliaKedron State High SchoolAddress34 Park RoadKedron, Queensland, 4030AustraliaCoordinat...
Chicago Bears Musim saat iniDidirikan 17 September 1920; 103 tahun lalu (17 September 1920)Bermain di Soldier FieldChicago, IllinoisKantor pusat di Halas Hall, Lake Forest, Illinois Chicago Bears logoChicago Bears wordmarkLogoWordmarkAfiliasi liga Independen (1919) National Football League (1920–sekarang) Western Division (1933–1949) National Conference (1950–1952) Western Conference (1953–1969) Central Division (1967–1969) National Football Conference (1970–sekarang) Div...
Johannes GutenbergLahirJohannes Gensfleisch zur Laden Gutenbergc. 1398-1400Mainz, Keuskupan Agung MainzMeninggal3 Februari 1468 (berusia 70 tahun)Mainz, Keuskupan Agung MainzSebab meninggalSerangan JantungKebangsaanJermanPekerjaanGravir, Penemu, & PencetakDikenal atasPenemuan dari Movable Printing PressSuami/istriElse Wirick zum Gutenburg Johannes Gensfleisch zur Laden zum Gutenberg (sekitar 1398 - 3 Februari 1468) adalah seorang pandai logam dan penemu berkebangsaan Jerman yang mem...
English actress (born 1958) Miranda RichardsonRichardson at the press conference for Stronger, Toronto International Film Festival 2017BornMiranda Jane Richardson (1958-03-03) 3 March 1958 (age 66)Southport, Lancashire, EnglandAlma materBristol Old Vic Theatre SchoolOccupationActressYears active1978–present Miranda Jane Richardson (born 3 March 1958)[1] is an English actress who has worked extensively in film, television and theatre.[2][3][4] A...
Emissions, impacts and responses of Scotland related to climate change Average annual temperature anomaly in Scotland between 1884 and 2020. Climate change in Scotland is causing a range of impacts on Scotland, and its mitigation and adaptation is a matter for the devolved Scottish Parliament. Climate change has already changed timings of spring events such as leaf unfolding, bird migration and egg-laying. Severe effects are likely to occur on biodiversity. Greenhouse gas emissions Scotland's...
South Korean rapperIn this Korean name, the family name is Kim. CheetahBackground informationBirth nameKim Eun-youngBorn (1990-05-25) May 25, 1990 (age 33)Busan, South KoreaGenresKorean hip hopOccupation(s)RapperYears active2010–presentLabelsMLDKorean nameHangul치타Revised RomanizationChitaMcCune–ReischauerCh'it'aBirth nameHangul김은영Revised RomanizationGim Eun-yeongMcCune–ReischauerKim Ŭnyŏng Musical artist Kim Eun-young (Korean: 김은영; born May 25, 1990), kno...
2003 film by Ravi Chopra BaghbanTheatrical release posterDirected byRavi ChopraWritten by B. R. Chopra Achala Nagar Satish Bhatnagar Ram Govind Shafiq Ansari Story byB. R. ChopraProduced byB. R. ChopraStarring Amitabh Bachchan Hema Malini Salman Khan Mahima Chaudhry CinematographyBarun MukherjeeEdited by Shailendra Doke Godfrey Gonsalves Shashi Mane Music by Songs: Aadesh Shrivastava Uttam Singh Background Score: Aadesh Shrivastava ProductioncompanyB. R. FilmsRelease dates 2 October ...
South African mathematician Loyiso NongxaFormer Vice-Chancellor of the University of the WitwatersrandIn office19 May 2003 – 1 June 2013[1]Preceded byNorma Reid BirleySucceeded byAdam Habib Personal detailsBorn (1953-10-22) 22 October 1953 (age 70)Indwe, Eastern Cape, South AfricaAlma materUniversity of Fort Hare, Oxford UniversityProfessionMathematician Loyiso Nongxa is a South African mathematician, the current Chairperson of the National Research Foundation of South...
Artikel ini sebatang kara, artinya tidak ada artikel lain yang memiliki pranala balik ke halaman ini.Bantulah menambah pranala ke artikel ini dari artikel yang berhubungan atau coba peralatan pencari pranala.Tag ini diberikan pada April 2017. Shu NagaiInformasi pribadiNama lengkap Shu NagaiTanggal lahir 26 Mei 1980 (umur 44)Tempat lahir JepangPosisi bermain GelandangKarier senior*Tahun Tim Tampil (Gol)2001 Tokyo Verdy * Penampilan dan gol di klub senior hanya dihitung dari liga domestik ...
Dorset dan Devon Coast TimurSitus Warisan Dunia UNESCOJurassic Coast di barat St Aldhelm's HeadLokasiInggrisKriteriaNatural: viiiNomor identifikasi1029Pengukuhan2001 (Sesi ke-25)Situs webSitus web resmiKoordinat50°42′20″N 2°59′24″W / 50.70556°N 2.99000°W / 50.70556; -2.99000Koordinat: 50°42′20″N 2°59′24″W / 50.70556°N 2.99000°W / 50.70556; -2.99000Location of Pantai Jurassic in Inggris Pantai Jurassic adalah sebuah Situs ...
Waiting, StillAlbum mini karya KyuhyunDirilis10 November 2016Direkam2016GenrePopR&BBalladSoft rockBahasaKoreanLabelLabel SJS.M. EntertainmentKT MusicKronologi Kyuhyun Fall, Once Again (2015)Fall, Once Again2015 Waiting, Still (2016) Singel dalam album Waiting, Still Blah BlahDirilis: 10 November 2016 StillDirilis: 10 November 2016 Video musikBlah Blah di YouTube Still di YouTube Templat:Korean membutuhkan parameter |hangul=. Waiting, Still adalah album mini ketiga penyanyi Ko...
American air-to-air missile AIM-4 Falcon AIM-4D FalconTypeAir-to-air missilePlace of originUnited StatesService historyIn service1956–88 (AIM-4F/AIM-4G)Production historyManufacturerHughes AircraftSpecificationsLength1.98 m (6 ft 6 in)Diameter163 mm (6.4 in)Wingspan508 mm (20.0 in)Warhead3.4 kg (7.5 lb)Propellantsolid fuel rocketOperationalrange9.7 km (6.0 mi)Maximum speed Mach 3Guidancesystemsemi-active radar homing and ...
Dolphin Tale 2Theatrical release posterSutradaraCharles Martin SmithProduser Robert Engelman Broderick Johnson Andrew A. Kosove Ditulis olehCharles Martin SmithBerdasarkanCharactersoleh Karen Janszen and Noam DromiPemeran Harry Connick Jr. Ashley Judd Nathan Gamble Kris Kristofferson Cozi Zuehlsdorff Morgan Freeman Penata musikRachel Portman[1]SinematograferDaryn OkadaPenyuntingHarvey RosenstockPerusahaanproduksiAlcon EntertainmentDistributorWarner Bros. PicturesTanggal rilis 12...
Mountain pass Rohtang PassA view from Rohtang PassElevation3,978 m (13,051 ft)Traversed byLeh-Manali HighwayLocationIndiaRangePir Panjal, HimalayasCoordinates32°22′17″N 77°14′47″E / 32.37139°N 77.24639°E / 32.37139; 77.24639 Rohtang Pass (Rohtang , lit: རོ་ (Ro)- corpse(s), ཐང་། (thang)- plain/field [1]) is a high mountain pass (elevation 3,980 m (13,058 ft)) on the eastern end of the Pir Panjal Range of the Himalayas around ...
UEFA Champions League 2007-2008 Competizione UEFA Champions League Sport Calcio Edizione 53ª Organizzatore UEFA Date dal 17 luglio 2007al 21 maggio 2008 Partecipanti 32 (76 alle qualificazioni) Nazioni 52 Sede finale Stadio Lužniki(Mosca) Risultati Vincitore Manchester Utd(3º titolo) Finalista Chelsea Semi-finalisti BarcellonaLiverpool Statistiche Miglior marcatore Cristiano Ronaldo (8) Incontri disputati 125 Gol segnati 330 (2,64 per incontro) Pubblico 5 380 9...
1528 mosque in Cairo, Egypt Sulayman Pasha Mosque مسجد سليمان باشا الخادمReligionAffiliationIslamRegionAfricaStatusActiveLocationLocationCairo Citadel, Islamic Cairo, Cairo, EgyptGeographic coordinates30°03′29″N 31°13′44″E / 30.05806°N 31.22889°E / 30.05806; 31.22889ArchitectureTypeMosqueStyleIslamicOttomanCompleted1528[1]SpecificationsDome(s)1Minaret(s)1 Sulayman Pasha al-Khadem Mosque (Arabic: مسجد سليمان باشا ا�...