WO2009010982A2 - Logiciel pour infrastructure en temps réel - Google Patents
Logiciel pour infrastructure en temps réel Download PDFInfo
- Publication number
- WO2009010982A2 WO2009010982A2 PCT/IL2008/000996 IL2008000996W WO2009010982A2 WO 2009010982 A2 WO2009010982 A2 WO 2009010982A2 IL 2008000996 W IL2008000996 W IL 2008000996W WO 2009010982 A2 WO2009010982 A2 WO 2009010982A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- operating system
- data
- block
- cores
- application
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
Definitions
- the present invention relates generally to operating system software, and more particularly, the invention relates to software for managing a realtime infrastructure.
- An Operating System is a software (also called, a program) providing a basic tasks performing on a computer. These tasks, mainly related to communication between the main system and peripheral devices, can be such as: inputs (a key pressed on a keyboard, moves of or clicks on a mouse, network signals, etc) and output (displaying a text on a screen, writing data on a hard disk, etc).
- the OS is responsible for sharing the resources of a computer, and managing and coordinating the activities performed on a computer.
- the OSs can be globally classified in a few main families.
- a multi-user OS allows at least two users to run programs simultaneously. Some OSs can manage up to thousands of concurrent users.
- a multi-processing OS supports running a program on at least two Central Processing Units (CPUs).
- CPUs Central Processing Units
- a multi-tasking OS allows at least two programs to run concurrently.
- a multi-threading OS allows different parts of a single program to run at the same time.
- a real-time OS is a multitasking OS intended for applications with fixed deadlines and based on real-time computing. Theoretically, an OS can be based on one or more of the abovementioned approaches.
- An OS generally provides a software platform (called environment) for other programs (called applications or applications programs) running on a computer. Programs must be written to run on top of a particular OS in order to extend the OS's abilities to communicate with peripheral device and users.
- the OS acts as a host for application programs running on a computer and offer services to application programs and users, for example, programs access these services through Application Programming Interfaces (APIs) or system calls.
- APIs Application Programming Interfaces
- GUIs Graphical User Interfaces
- Executing a program involves the creation of a process by the OS's kernel.
- the kernel is the central component of the OS and is the real manager of the system's humans.
- the kernel creates a process and allocates memory to it before loading the related program code from an external or another memory location into the specifically allocated memory, and starting the process running.
- Operating system kernels store various information about running processes. As an example, this information might include: the unique process identifier (program or a part of it), references of the memory used or allowed to be used by said process, the location from which the program was loaded into the memory, the last values of all CPU registers, etc.
- Interrupts are signal issued form hardware devices or software components indicating that changes occurred in the behaviour of the hardware. According to the interrupes, the OS is able to deal with these unexpected activities.
- the computer's hardware automatically suspends whatever program is currently running to check and to treat an interrupt.
- An operating system kernel contains a program called scheduler.
- a scheduler determines how much time each program spends executing, and in which order the programs (the processes) are executed.
- An operating system having a plurality of interconnected operating system cores each of said operating system cores taking place in a system and each said operating system cores being efficient to exchange data with other operating system cores and applications programs.
- Said operating system is configured to manage securely communication and data flows between all the components of a system.
- the present invention includes a plurality of operating system cores which are grouped in subsets of operating system cores and linked to one another. Each operating system core is able to communicate, with other operating system cores and applications programs, using all available communication protocols and all new communication protocols are implementable.
- each task submitted to the system can be optionally replicated in at least two operating system cores.
- This replication of tasks in at least two operating system cores allows system crash tolerance and each task is submitted to a particular operating system core according to its systems capabilities. Replication between operating system cores is a transparent process for the End-user.
- a system core CPU manages a plurality of operating system cores.
- Fig. 1 is a schematic representation of the logical model of the OS Core model of communication with applications
- FIG. 2a is another schematic representation of the OS Core model of communication with applications
- Fig. 2b is an example of the schematic representation of the OS Core model of communication with applications
- Fig. 3 is a schematic representation of the hierarchic relationships between applications managed by the OS Core based on filter patterns
- Fig. 4 is a schematic representation of the data flow into the OS Core
- FIG. 5 is a schematic representation of the internal layout of an application
- - Fig. 6 is a schematic representation of the task dispatch function of an application into the OS Core.
- the applications that is to say software, in the present invention system possess defined software interfaces with the external world, that is to say any element (e.g., OS Core, other applications, user, etc..) which is not embedded into the application.
- these interfaces are implemented as following:
- applications in the present invention system may implement the following functionalities:
- - Error Report notify the system about an error or bug and the consequences, such as restart required, errors on last data frames, low resources, etc, of said application;
- - Live Update pause, Save Configuration and Queue, Detach from upper application with suspend notification, and notify new version that it can load, restore and resume.
- a set of functionalities are implemented in order to allow tests related to the application running.
- Fig. 1 is a schematic representation of an embodiment of the present invention, in which the engine is indicated by numeral 100.
- Data output from the engine is raw data.
- the first application receives the raw data and then prepares the data for the next application below it.
- the data sent (as input) to an application is a "Data Frame".
- Tlie Data Frame for the first application is the raw data.
- the standard architecture of a data frame is structured in four blocks (also called buffers). Since the order of blocks is defined by system design, as an example, the first one is the identification of the source (as input) of the data frame; the second block is the identification of the destination of the output; the third bloc relates to data; the fourth is a control sequence. According to one embodiment of the present invention a block can be empty.
- an application can send a Data Frame to any permitted application. This is a Command or a Function Invocation.
- the application does that by specifying the destination application.
- An application can also use "Next In Line” as the destination which will send to all applications that appear after this application in the block diagram of Fig. 1.
- the application can also specify "Caller” as the destination which will send the Data Frame to whomever sent the original Data Frame to it.
- the applications recognize any protocol.
- the Design Interface allows defining adequate rules in order to define the inputs and the outputs of an application. More generally the architecture of this type of data flow allows supporting any network protocol, including those that may be added in the future.
- Each application is responsible for preparing the Data Frame for the subsequent applications, and subsequent application is responsible for specifying the patterns of Data Frames that it can receive and handle in order to extract relevant data in the Data Frame.
- the application replies with a modified frame, in order to be in accordance with network filtering model and not when working with e.g. a word processor, and a decision into the control sequence, that can be: Allow, Block, Voting, with/without data modification.
- Data modification may require re-voting by other applications as the data flows back.
- an HTLM file can be checked as follow.
- the OS Core receives a Data Frame from another application and the OS Core emits a Data Frame 105 to the application TCP/IP 103 which formats it to be able to make use of it and to send the new Data Frame 109 to the HTTP application 113.
- the HTTP application 103 formats it to be able to make use of it and to send the new Data Frame 117 to the MIME application 119.
- the MIME application 119 generates a decision and modifies if necessary the data frame 115 and send it back to HTTP application 113.
- the HTTP application 113 generates a decision and modifies if necessary the data frame 111 according to the previous decision 115 and send it back to TCP/IP application 103.
- the end-decision 107 is sent back to the OS Core 101.
- Fig. 2a is view of the OS Core model 200 of communication with the applications by the intermediate of the Access Control Layer 228.
- the Access Control Layer 228 is responsible for all access permissions and security filtering. According to this, the Firewall 208 starts working when the system is initialized; the Firewall 208 sends a set of patterns or rules to the Access Control Layer 228 and can then stop working because Access Control Layer 228 can do the work. It is possible for the Firewall 208 to send a rule to the Access Control Layer 228 that will wake up the Firewall 208 for given events (using the Interrupt interface of the Firewall 208 application).
- the system supports applications that can do the filtering themselves, so it is still possible for the Firewall 208 to do the filtering for all network traffic by loading a rule to the Access Control Layer 228, so that any data related to the network goes to the Firewall 208 as a filter.
- the OS Core 202 can receive Data Frames and send raw data to the same or to other applications.
- the OS Core 202 sends to a Firewall 208 a data frame 206 and receives it back (see line 204), modified or not.
- the OS Core 202 send to instant messenger software 214 a data frame 210 and receives a Data Frame 212 as a result.
- the OS Core 202 sends to a word processing software 220 a data frame 218 and will receive back data frame 216 as a result.
- the OS Core 202 sends to Internet browser software 226 a data frame 222 and will receive back a data frame 224 as a result. According to the last descriptions, this model is OS Core centered.
- Fig. 2b is an example of an embodiment of the schematic representation of the OS Core model of communication with applications.
- the Hardware I/O Manager 260 receives a Data Frame 264 coming from the OS Core 202 by way of the Access Control Layer 228, and sends a 'click event 1 Data Frame (by way of Access Control Layer 228 and OS Core 202 using respectively signals 266 and 268) to the Mouse Driver 270 (by way of Access Control Layer 228 and OS Core 202 using respectively, signals 272 and 274).
- the Mouse Driver 270 sends to the OS Core 202 a 'button click event' using signals 276 (for step Mouse Driver 270 - Access Control Layer 228) and 278 (for step Access Control Layer 228 - OS Core 202).
- the OS Core 202 sends the 'button click event' Data Frame 240 (for step OS Core 202 - Access Control Layer 228) 242 (for step Access Control Layer 228 - Word Processor 220) to the Word Processor 220.
- the Word Processor 220 sends a 'file save' Data Frame 246 (for step Word Processor 220 - Access Control Layer 228) and 248 (for step Access Control Layer 228 - OS Core 202) to the File System 250, using signals 252 and 254.
- the File System 250 sends a sequence of 'disk I/O write 1 Data Frames to the Hardware I/O Manager 260 (using successively, signals 256, 258, 280, and 282).
- the Hardware I/O Manager 260 sends the sequence of 'disk I/O write' to the Physical Disk Device 288 (using successively signals 284, 286, 290, and 292).
- the Physical Disk Device 288 sends 'result' Data Frames (using signals 294 and 296 respectively for steps Physical Disk Device 288 - Access Control Layer 228 and Access Control Layer 228 - OS Core 202) to the Hardware I/O Manager 260 (not shown).
- the Hardware I/O Manager 260 sends 'result' Data Frames to the File System 250 (not shown).
- the File System 250 sends a 'result' Data Frames to the Word Processor application 220 (not shown). If the Word Processor application 220 tries to send a Data Frame to the Hardware I/O Manager 260 this Data Frame is stopped by the Access Control Layer 228, because the Word Processor application 220 does not have permission to access the hardware. A 'file save' Data Frame sent to the Mouse Driver 270 will be stopped by the Access Control Layer 228 because it does not match the pattern that the Mouse Driver 270 specified as valid input Data Frames. A 'result' Data Frame can be sent by the Access Control Layer 228 when a Data Frame is blocked. Whether the Access Control Layer 228 sends this result depends on the pattern specified by the receiver, so for example, it is possible for a network driver to ignore notifications about dropped packets.
- Hardware I/O Manager 260 can be an internal part of OS Core 202.
- Fig. 3 is schematic representations of an embodiment of the hierarchical relationships between applications, according to one embodiment of the present invention.
- each application has an input and an output; for example IP 301 is the input for UDP 303 and TCP 305.
- TCP 305 is an input for FTP 307, SMTP 309, or HTTP 311.
- Each application can load other applications as service providers, or attach to other applications as data providers; for example MIME 313 loads an anti-virus program 315 or an anti-spyware program 317 as a service provider; HTTP 311 is attached to its data provider TCP 305.
- a data provider application has a list of masks; each mask has an equivalent operation such as Drop, Forward to appropriate subsequent application, push to end of queue, etc; application masks are preset by the application that requests data sink or by the Administrator or by any other element in the system that is allowed to do so, by the way of the Design Interface.
- Application masks are patterns sent to the ACL. If the OS Core manages the queues for a given application, then the OS Core will manage queue operations and it is possible for the ACL to notify the OS Core of a pattern match that triggers a queue manipulation.
- Fig. 4 is a schematic representation of the data flows 400 and 420 into the OS Core, according to an embodiment of the present invention.
- an application 406 has an input queue 404 so that the OS Core can push data 402 into its queue.
- the application 406 has an output queue 410, so that it can buffer outgoing data frames and the OS Core can pull asynchronously (412).
- Application 406 has an internal clock 408 for processing data.
- application 416 does not have an input or an output queue and behaves as a slave for input data 414, and as a slave for output data 418.
- the OS Core sends a single data frame at a time and waits for the processing to complete before it can send another data frame.
- the OS Core also must to receive the outgoing data frame as soon as it is ready, because the application 416 cannot buffer it. It is possible for an application to have any combination of either input queue or input slave, and either output queue or output slave.
- a possible configuration is to have a sequence of connected applications, all having an output queue and an input slave, all synchronized with the same base clock. Such an example can be used for video streaming.
- Fig. 5 is a schematic representation of the internal layout of an application managed by the OS Core, according an embodiment of the present invention.
- the internal features of application 500 are:
- the application can implement an input queue 503 for buffering incoming data frames and can implement an output queue 521 for buffering outgoing data frames.
- - a Save State Interface 507 allows to save the state of said application 500 to an external storage;
- - a Control Interface 519 used by the infrastructure of the present invention to define controls such as Stop, Start, Pause, Reset, Self Test, etc;
- the User Interface 509 allows remotes of the application's information, status and controls to another machine or another system by describing the user interface and naming an interactive operations with an Operation id' that will be sent as part of the 'command' data frame with its parameters;
- the Dispatcher 505 deciding which of the Operational Units handles a given task according to a set of rules.
- the dispatcher may use services provided by the OS Core or have a part of it integrated in the OS Core.
- Fig. 6 is a schematic representation of the task dispatch function 600 of an application.
- the task dispatch function features of an application are a set of Operational Units.
- Operational Units such as 511, 513, and 515 can be managed by a single Core Unit 602.
- a task 606, 608, or 610 in Task Queue 604 can be queued by a single application or by several applications on the same system.
- a task can be the need to scan for viruses, the need to match Masks or any other application calculation and operation.
- Core Unit 602 defines which Operational Units 511, 513, or 515 should attend to it, according to the units load, proximity or any other consideration such as network bandwidth costs.
- the system should include at least two operational units. Both units receive the same tasks so that if one fails the other completes the job for it. The first to complete the task causes the same task on other work units to cancel. This also increases performance for high priority operations because the task is handled by the first work unit that is ready to take the job work.
- the units share tasks so that a given task is distributed to at least two units but not all the operational units.
- any given operational unit that fails during an operation will not degrade system's performance and reliability, because all of its tasks are backed by parallel operational unit.
- the task distribution in Fig-6 is made on three operational units 511, 513, and 515.
- Operational Unit 511 received Tasks 606 and 608;
- Operational Unit 513 received Tasks 606 and 610;
- Operational unit 511 received Tasks 608 and 610.
- an operational unit with a strong CPU receives more Mask Matching tasks than others and an operational unit with large amount of memory will receive more virus and spam scanning tasks. This is optional and is subject to system design.
- the operating system's elements OS Core and ACL are responsible for the interaction and communication between applications and tasks in way that the OS Core identifies the communicating elements and the ACL identifies the interaction between the elements.
- the system knows many resources such as Tasks, Applications, Files, CPU Cores, Machines, Network Sockets, etc. Every such resource may be accessed under restrictions.
- the following two models are utilized by the systems: Clearance Rings and Interest Frames.
- the Clearance Rings model is a model that defines privilege levels and restrictions in a concentric layout.
- An example is the access to a database in the network can be described using a Clearance Rings model in such a way that a guest user is in the innermost ring and cannot access the database, next outer ring is the untrusted user who's requests to the database are scanned before they are forwarded to the database, next outer ring is the trusted user who can access the information stored in the database with no restriction and the outermost layer is the database administrator who can define user restrictions and can shut down the database.
- Multiple Clearance Rings models are used to describe resources, machines, users, and any other system managed element and groups of elements. The collection of Clearance Rings models help determine the system's behavior for a new request.
- the Interest Frames model is an access control and restrictions model that defines groups of elements with hierarchies.
- An example is a organization layout that has a Chief Executive Officer (CEO) managing a Chief Financial Officer (CFO) and a Chief Technical Officer (CTO) managing two employees.
- the first Interest Frame has the CEO as the frame leader with CFO and CTO in this frame.
- the second frame has the CTO as frame leader with the two employees as frame members.
- the CFO does not directly access the employee because the employee is not a part of a mutual frame. Overlapping frames are possible so that a project may define a temporary frame lead by the CFO with CTO and an employee as members.
- Each Interest Frame defines the restrictions of anyone that is not member of the frame and permissions of members of the frame.
- the Access Control Layer utilizes the Clearance Rings model and Interest Frames model as access control models. Every system resource including applications, tasks, files, network sockets, etc. is mapped in these models.
- a device driver is mapped in a hardware access Clearance Ring as allowed to communicate with a device whereas a word processor application is in a more restricted ring that does not allow access to hardware resources.
- a USB disk drive where the USB driver can suspend the device or allow device removal while the File System driver can only work with files on the device.
- An example for use of an Interest Frame is an application that can have all related processes, threads and tasks as part of the same Interest Frame so that they can communicate with each other.
- Such a frame would allow interprocess communication only between members of the same frame.
- Another example is a word processor that has all text document files in its interest frame thus restricting access from other applications, so for example an image editor cannot even see document files on the hard drive unless it is added as a frame member, or an instant messenger can only read text documents but not edit them.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
- Computer And Data Communications (AREA)
Abstract
L'invention concerne un système d'exploitation muni d'une pluralité de cœurs de système d'exploitation interconnectés, chacun des cœurs de système d'exploitation prenant place dans un système et étant efficace pour échanger des données avec d'autres cœurs de système d'exploitation ainsi qu'avec des programmes d'applications.
Applications Claiming Priority (6)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US95034207P | 2007-07-18 | 2007-07-18 | |
| US60/950,342 | 2007-07-18 | ||
| US11/834,697 US20090044270A1 (en) | 2007-08-07 | 2007-08-07 | Network element and an infrastructure for a network risk management system |
| US11/834,697 | 2007-08-07 | ||
| US2237508P | 2008-01-21 | 2008-01-21 | |
| US61/022,375 | 2008-01-21 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| WO2009010982A2 true WO2009010982A2 (fr) | 2009-01-22 |
| WO2009010982A3 WO2009010982A3 (fr) | 2010-03-04 |
Family
ID=40260186
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/IL2008/000996 Ceased WO2009010982A2 (fr) | 2007-07-18 | 2008-07-17 | Logiciel pour infrastructure en temps réel |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2009010982A2 (fr) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN104917776A (zh) * | 2015-06-23 | 2015-09-16 | 北京威努特技术有限公司 | 一种工控网络安全防护设备与方法 |
Family Cites Families (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3251640B2 (ja) * | 1992-06-18 | 2002-01-28 | 株式会社東芝 | データ伝送方法とその装置 |
| US20060117274A1 (en) * | 1998-08-31 | 2006-06-01 | Tseng Ping-Sheng | Behavior processor system and method |
| US6952800B1 (en) * | 1999-09-03 | 2005-10-04 | Cisco Technology, Inc. | Arrangement for controlling and logging voice enabled web applications using extensible markup language documents |
| US7644134B2 (en) * | 2001-07-06 | 2010-01-05 | Clickfox, Llc | System and method for analyzing system visitor activities |
| WO2004036422A2 (fr) * | 2002-10-15 | 2004-04-29 | Koninklijke Philips Electronics N.V. | Appareil de traitement de donnees, et procede de synchronisation d'au moins deux moyens de traitement dans un appareil de traitement de donnees |
| US7093231B2 (en) * | 2003-05-06 | 2006-08-15 | David H. Alderson | Grammer for regular expressions |
| US7945909B2 (en) * | 2003-05-09 | 2011-05-17 | Sap Aktiengesellschaft | Initiating recovery of an executing task using historical information and task information |
| EP1678617A4 (fr) * | 2003-10-08 | 2008-03-26 | Unisys Corp | Para-virtualisation d un systeme informatique utilisant un h yperviseur implemente dans une partition du systeme hote |
| US7827551B2 (en) * | 2005-09-21 | 2010-11-02 | Intel Corporation | Real-time threading service for partitioned multiprocessor systems |
-
2008
- 2008-07-17 WO PCT/IL2008/000996 patent/WO2009010982A2/fr not_active Ceased
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN104917776A (zh) * | 2015-06-23 | 2015-09-16 | 北京威努特技术有限公司 | 一种工控网络安全防护设备与方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2009010982A3 (fr) | 2010-03-04 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR102255767B1 (ko) | 가상 머신 감사를 위한 시스템 및 방법들 | |
| Ghormley et al. | SLIC: An Extensibility System for Commodity Operating Systems. | |
| Robbins et al. | UNIX systems programming: communication, concurrency, and threads | |
| Ousterhout et al. | Medusa: An experiment in distributed operating system structure | |
| Cho | A Framework for Alternate Queueing: Towards Traffic Management by PC-UNIX Based Routers. | |
| Russinovich et al. | Windows internals, part 2 | |
| US8387075B1 (en) | Common scheduling and synchronization primitives | |
| US7657450B2 (en) | Reliable, secure and scalable infrastructure for event registration and propagation in a distributed enterprise | |
| CN113986449A (zh) | 一种面向容器的Linux内核虚拟化系统及方法 | |
| US20060271931A1 (en) | Distributed signaling in a virtual machine cluster | |
| US8190673B2 (en) | Enforcement of object permissions in enterprise resource planning software | |
| US7383551B2 (en) | Method and system for integrating non-compliant providers of dynamic services into a resource management infrastructure | |
| US10534640B2 (en) | System and method for providing a native job control language execution engine in a rehosting platform | |
| Miller et al. | Enoki: High velocity linux kernel scheduler development | |
| US11500661B2 (en) | Performing an application snapshot using process virtual machine resources | |
| Thuraisingham et al. | Information survivability for evolvable and adaptable real-time command and control systems | |
| CN111241540A (zh) | 一种业务处理方法及装置 | |
| WO2009010982A2 (fr) | Logiciel pour infrastructure en temps réel | |
| US20110271327A1 (en) | Authorized Application Services Via an XML Message Protocol | |
| Miller et al. | Agile Development of Linux Schedulers with Ekiben | |
| Kifer et al. | Introduction to operating system design and implementation: the OSP 2 approach | |
| MCFADDEN et al. | msr-safe | |
| Grechanik et al. | Using aop to monitor and administer software for grid computing environments | |
| Patil et al. | Operating System | |
| Maltare et al. | Principles of Operating System Design and Virtualization Technologies |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 08776628 Country of ref document: EP Kind code of ref document: A2 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 08776628 Country of ref document: EP Kind code of ref document: A2 |