Patent-Processor Mac OS
Patent-Processor Mac OS
SCCS is a library of UNIX operating system functions from which the user can configure a system for maintaining a history of revisions to source documents (Allman, 1984). The SCCS stores the initial document and a file of changes ('delta's') to that document associated with each revision. Manager of OS and CPU Power Management team (2017-present) Mac OS X Kernel Engineer at Apple (2010-2017) ESX Server kernel developer at VMware, Inc (2006-2010). OS 210 can be provided by a conventional operating system, such as Microsoft Windows 9×, Microsoft Windows NT, Microsoft Windows 2000, or Microsoft Windows XP, all available from Microsoft Corporation of Redmond, Wash. Alternatively, OS 210 can also be an alternative operating system, such as the previously mentioned operating systems.
The present invention relates generally to call processor architectures, and in particular to methods and apparatus for high-availability call processor systems and methods.
Moving forward, I believe Apple will really start taking laptop shares. Their focus will be reaching as many customers as possibles, since they are shifting away from hardware to more services. Hence, iOS apps are able to run on Mac OS, and they are heavily pushing. Here is the link to the patent. Thanks to u/freddyt55555 for the heads up on this one. I am extremely excited for this tech. Here are some highlights of the patent: Processor includes one or more reprogrammable execution units which can be programmed to execute different types of customized instructions.
Conventional call processor systems use special purpose, dedicated systems for implementing redundancy. For example, some conventional systems utilize two computer systems, one of which is active and the other standby, and special purpose hardware and software that interacts with each computer system to implement high-availability. The special purpose hardware and software communicates with the active computer system to capture status information so that in the event the active system goes down the standby system can start in place of the active system using the information collected by the special purpose hardware and software.
Thus, conventional high-availability architectures require special purpose hardware and software, which raises system costs. The additional costs make systems very expensive. There is, therefore, a need for a high-availability architecture that solves the problems associated with special purpose hardware and software high-availability systems.
The call processor system consistent with the invention takes advantage of commercial off the shelf (COTS) products while maintaining high availability. The call processor system is comprised of four main components: X86 Single Board Compute Platform (CP PII), System Area Network (SAN) interface, high-speed pipes (HSP's), System Utility Card (SU), and a Core to Network Interface Card (cCNI).
The compact peripheral component interconnect (cPCI) standard specifies both the packaging, format and the electrical interface for the back plane and the on card bus structure of the system. The cPCI standard also include the hotswap specification. The hot swap specification has standardized a way to insert and remove circuit packs in a live system without affecting other circuit packs that share the same bus. The specification also specifies how an operating system (OS) can be notified so as to allow dynamic loading of drivers.
By using COTS components, future upgrades to newer technologies are easy and quick, thus leveraging the time to market opportunities that can be gained by using, third party off the shelf components. The system implements a high-availability architecture based around a system area networks (SAN) technology that allows the call processor to perform better than conventional systems, and also build a system that could easily evolve. The system features include a 1+1 sparing strategy, graceful switchover that preserves all call states, ungraceful switchover in case of node failure that would preserve all existing, established calls, hard disk drive redundancy, and IP take over (the system presents a logical Ethernet connection to the OA&M connection). The system addresses all of these issues and in addition provides for querying the health of the inactive side at any time. Due to the high bandwidth of new high-speed network interface cards, the complete system memory image can be transferred to the inactive system on command within one second; this type of performance allows the active processor to run asynchronously to the standby system, allowing significant performance gains to be achieved on the active side. When a graceful switchover is required, the complete system state of the active processor can be transferred to the standby processor allowing the standby processor to continue as if it had been in control all the time. This strategy works well for hardware failure.
In a redundant system, one side is in active mode running call processing, and the other side is in standby mode ready to take over. This is called a redundancy approach. Both the active side and the standby side are running, in parallel, however, the active side is running call processing applications while the inactive side is running only diagnostics and management tasks. Since the status of the inactive side is always known, the system can make better decisions on whether or not to switchover. Redundancy control in a call processor consistent with the present invention is software-based. As a result, all the redundancy related functions are implemented by software. This has several advantages, such as loosening the coupling between the two sides, thus reducing adverse interference between them. Certain features of the redundancy control may still be implemented in hardware.
First cPCI shelf
Network
PCI bus
ISA bus
Application adaptors layer
Hardware abstraction layer
BSP
Exception and interrupt handling mechanism of the Real-time OS Kernel
Communication stacks
OS extensions
Patent-processor Mac Os Download
Communication Manager
LCS
From synch on the block R/A, R/I, LCS
From update, the system may move to state HSP down if it is determined that the high speed pipe is down. From HSP down, the system may move back to synch if the high speed pipe comes back up.
The system may also move from update in block R/A, R/I to update in block R/I, R/A if there is a graceful switchover active (g-swoA). For example, there might be a graceful switchover to the other system for routine maintenance. The system may move back to the update in block R/I, R/A if there is a graceful switchover inactive (g-swoI).
From block R/I, R/A, there may be an ungraceful switchover (ug-swoI), which moves the system to the synch state in block R/A, R/I.
From switch state, LCS
From synch in block R/I, R/A, if a split inactive (splitI) is performed the system moves to S/A in state S/I, S/A.
Heart beat
In one embodiment, two pipes are used for vote and heartbeat messaging: High Speed Pipe and Ethernet. Two pipes have several advantages, including: (1) eliminating single point of failure to increase system reliability, and (2) avoiding unnecessary ungraceful switchover when the HSP pipe fails.
SWOMgr
An ungraceful switchover occurs when a more catastrophic event occurs, such as when CP PII
LCS
PDataMgr
Disk redundancy
During disk synchronization all updates (writes and iocti calls that modify the disk) on the protected and unprotected partitions will be mirrored to the slave CP when the system is in redundant mode.
Redundancy state is stored in LCS
In split mode, the system behaves a little differently. In this scenario, there are two active nodes, each totally independent. When the nodes are in split mode, they both only use their individual protected and unprotected partitions. The independent partition is not used. The redundancy agent does not propagate update I/O because the system is in split mode.
A multiple partitioning scheme is implemented that provides three separate partitions on the same hard disk. It can set up the disk into standard MS-DOS format partitions. In the CPP model, three partitions are setup according to the following table:
Side | Partition requested | Partition used |
Master | /p | /C |
Master | /u | /D |
Slave | /p | /C |
Slave | /u | /E |
The partitioning scheme also allows an application to retrieve the partition information from the disk. This includes the number of partitions, the sizes of each, where they begin/end, and the type of file system located on each. The users of disk redundancy only include other software modules.
Initialization of disk redundancy
The disk redundancy system consistent with the principles of the present invention has several advantages, including: providing high data availability with low performance overhead, keeping the cost low by providing a design that does not depend on customized hardware, and minimizing modifications to the existing software by providing application-transparent disk redundancy software.
In one embodiment, disk redundancy is built on an IDE controller which comes with the CP card. As a result, no additional cost is required and no change is necessary to the existing hardware.
Data mirroring between the two disks is achieved via messaging over a high speed pipe. This same high speed pipe is used for protected memory mirroring, heartbeat, and switchover. There are several advantages of this approach, including: (1) two CPU nodes can be physically located at much farther distances, and (2) combined with the loosely-coupled CPU redundancy strategy, the redundant system will become a message-based system, which is advantageous for moving toward distributed computing.
In one embodiment, disk redundancy software is built on top of the disk device driver and under the DOS file system. This approach provides simplicity. The software is self-contained, independent of the file system, and there is no need to manage file system states during switchover, split and join operations.
Disk redundancy software in each side of the redundant system reports faults to the fault handling module of its own side. The disk redundancy software itself does not exchange fault information between the two sides. One advantage of this approach is that general fault handling mechanism should be the same for both simplex and duplex systems, and allow the logical call server to handle redundancy specific decisions. This also has the advantage that the logical call server module is the only module that has the information of both sides.
To effectively handle the differences in traffic requirements between disk redundancy, stop and copy, and the heartbeat/checkpointing facilities, in one embodiment three separate channels are implemented across the high speed pipe.
IP management
To facilitate communication with external systems running on a LAN, the present invention is equipped with two Ethernet ports, which are connected to the LAN. Thus, certain IP management functionalities are provided. Since both nodes are running, two IP addresses allow external systems to talk to both nodes even though the system is addressed using a single IP address. An IP address is not assigned to a physical node (node
Gratuitous address resolution protocol (ARP) handles run-time IP address change. When a host's IP address is changed, it broadcasts its IP address and its MAC address to the network. Other nodes on the network can continue to communicate with the host. In the present invention, gratuitous ARP is used during a graceful switchover. Graceful switchover copies the entire memory image from the old active side to the new active side. As a result, the new active side gets the active-IP-address but it still has the existing MAC address. To inform this change the new active side sends a gratuitous ARP as one of its post-switchover actions. The gratuitous approach is useful in a multi-node architecture. During the post-switchover, the new inactive side sets its IP address to the inactive P-address by calling a function, such as VxWork's if AddrSet( ), which does gratuitous ARP.
The new active side goes through a warm restart to set its IP address to active-IP-address. DRAM
In true redundant state
Split mode is used when it is desirable to break redundancy in a controlled way. Split is used when one side needs to be brought down, such as for maintenance. In split state
In single redundant not ready state
Node
Node
For node
Patent-processor Mac Os X
Continuing with the step
For node
For node
Patent-Processor Mac OS