Note:
(4) 8 P160: (4) on behalf of the title belongs to the 4th chapter of the content, 8 is the title (8th), P160 is the problem in the Book of the General page number.
29 in the distributed operating system, explain the meaning of the single core, and explain why the use of micro-core technology, usually micro-core provides what services should be provided. PPT CH1P21
A: Single core: Each machine runs a traditional kernel, and the kernel itself provides most of the services. Single-Core: Centralized operating system + network services and remote services. The only potential advantage of a single-core system is performance.
Microkernel : The kernel provides as few services as possible, and a large number of operating system services can be obtained from the user-level server. Micro-cores offer greater flexibility.
The microkernel provides only four minimum services: 1. interprocess communication mechanism 2. Some memory management features 3. Low Level process management and scheduling 4. Low-level input/output services.
30 techniques to address scalability include hiding communication latency, distribution, and replication, and try to illustrate how distribution and replication technologies address scalability. P10
A: Distribution technology: Split a component into multiple parts and then scatter them into the system. An example of using a partial technique is that the Internet Dns,dns namespace is a hierarchical tree structure of domains (domain) that is divided into non-overlapping zones (zone). Each name in the zone has a single domain name server processing. Fundamentally, parsing a name means returning the network address of the host associated with that name. Distributing DNS-provided naming services across multiple computers avoids the dilemma that a single server has to deal with all name resolution requests.
replication technology: Distributing replicas across the system is usually a good idea. Replication not only increases availability, but also facilitates load balancing among components, which improves performance. Similarly, for systems that are geographically dispersed, having a copy near the requester can largely hide the previously mentioned communication wait time problem. For example, a medium or large company is often composed of geographically dispersed departments, which typically require data sharing. Data replication enables data sharing by replicating these shared data to multiple databases in different locations, enabling local access to data, reducing network load and improving the performance of data access, and by periodically synchronizing the data in the database (usually nightly). This ensures that all users are using the same, up-to-date data.
31 in distributed systems, the software architecture is a very important concept, involving how to organize software components and how to interact, etc., detailing four kinds of architectural Style. P24
Answer: Four architecture styles:
(1) hierarchical architecture;
(2) object-based architecture;
(3) data-centric architecture;
(4) event-based architecture.
Layered Architecture: components make up different layers, where components in Li can invoke the following layer Li-1. One key factor is that the control is from one level to the other: the request is from the top down, and the request results from the bottom up.
Object-based architecture: It's a very loosely organized structure. Basically, each object corresponds to a component that is connected through a (remote) procedure call mechanism. Layered and object-based architectures are still the most important styles of large software systems.
data-centric architecture: it is developed from this thought: process communication needs to pass through a public (passive or active) warehouse. For distributed systems, it is argued that this architecture is as important as layering and object-based architectures.
Event-based architecture: processes are basically communicated through the propagation of events, and event propagation can optionally carry data. For distributed systems, event propagation is usually related to the publish/subscribe system. The basic idea is that the process publishes events, and then the middleware will ensure that the processes that subscribe to these events receive them. The main advantage of an event-based system is that the process is loosely coupled. In principle, they do not need to explicitly refer to each other, which is referred to as reference decoupling.
32 Client server applications can divide the software composition into three tiers, explaining the role of each layer, and how the Internet search engine organizes software components in a three-tier structure. P26, P27
A: You can divide the software composition into three tiers:
(1) for the interface layer;
(2) processing layer;
(3) data layer.
user interface layer: Contains everything needed to interact directly with the user and is responsible for handling the interaction with the user. For example, display management. Customers typically implement the user interface layer, which consists of programs that allow the end user to interact with the application, and the complexity of the user interface program differs greatly.
processing layer: typically contains the core functionality of the application.
Data layer: Manages the actual data to be used and is responsible for manipulating the database or file system.
If you ignore all animated banners, images, and other window decorations, the user interface of the search engine is simple: the user enters a keyword string and then displays a list of web pages. The backend is made up of a huge web page database that is prefetch and indexed. The core of a search engine is a program that converts a user's keyword string into one or more database queries. It can rank the results into a list and convert the list into an HTML page list. In the client-server model, this information retrieval section is often placed in the processing layer.
It is a typical non-centralized architecture, which shows how to organize nodes and data, how to find data and how to manage members. P31
A: In a structured peer-to architecture, overlay networks are composed of a deterministic process. The most used process is to organize the process through a distributed hash table. In a DHT-based system, select a random key number from a large identifier space to assign to the node in the system. The key value of the data item is uniquely mapped to the identifier of the node based on a distance scale. Most importantly, the network address of the node of the corresponding data item is returned when the data item is found. This can be done by routing the request of the data item to the corresponding node.
Each node has a shortcut to maintain to other nodes so that the lookup can be done in O (log (N)) step, where N is the number of nodes that overwrite the network. In chord, if a node is to be added to the system, it first generates a random identifier. The node can then perform a lookup of the ID, returning the network address SUCC (ID). At this point, the joined node simply contacts succ (ID) and its predecessor, and adds itself to the ring. This scenario, of course, requires that each node store the information of its former successor. The insert operation also causes the SUCC (ID) to be transferred to each data item whose key value is associated with the node ID. Leaving the node is also simple: the Node ID informs its predecessor and successor that it is leaving and transfers its data items to SUCC (ID).
The BitTorrent system uses a combination of centralization and distribution to illustrate the main components of the BitTorrent system, and explains its working principle. P37
A: BitTorrent Web page: A Web server that contains a reference to a file server.
. torrent file: A file server that contains a reference to a tracker that contains information to download a specific file.
Tracker: Stores the list of nodes in F, maintaining an accurate record of the active nodes that have the requested block of files.
active Node: A node that is currently downloading another file
file Sharing system BitTorrent is a point-to-point file download system. The basic idea is that when an end user is looking for a file, he can download the file block from another user, knowing that the downloaded block of files can be assembled into a complete file. An important design goal is to ensure collaboration. Files can be downloaded only if the download customer has provided the content to others.
to download a file, the user needs to access a global directory, which simply executes one of the Web sites. This directory contains a reference to a file named. torrent. A. torrent file contains information to download a specific file. In particular, it points to a tracker. This is a server that maintains an accurate record of active nodes that have the requested block of files. An active node is the node that is currently downloading another file. Typically, there is only one tracker per file (or set of files).
Once a node determines where a block of files can be downloaded, the download node becomes active. At this point, it is forced to help other nodes, for example, to provide a block of files that it is downloading but not yet the other node is mandatory from a very simple rule: if node P knows that node q is downloading and not just uploading, p can decide to reduce the rate of sending data to Q. As long as P needs to be downloaded from Q, this scheme will work well. For this reason, nodes tend to have a lot of references to other nodes so that they are in a better position to exchange data.