摘要:
Detecting and/or tolerating races. Races occur due to malicious threads not respecting software locks. A method of detecting and/or correcting races includes making local copie(s) and reference copie(s) of shared data. Any read and write operations performed by a safe thread are caused to be performed on the local copie(s) during a critical section. The critical section defines a time frame which a variable lock is placed on shared data. Any read and write operations performed by malicious threads are allowed to be performed on the shared data during the critical section. The shared data, the local copie(s), and the reference copie(s) are compared to determine that a race has been detected. An indication can be output that a race has occurred or the race can be corrected.
摘要:
Detecting and/or tolerating races. Races occur due to malicious threads not respecting software locks. A method of detecting and/or correcting races includes making local copie(s) and reference copie(s) of shared data. Any read and write operations performed by a safe thread are caused to be performed on the local copie(s) during a critical section. The critical section defines a time frame which a variable lock is placed on shared data. Any read and write operations performed by malicious threads are allowed to be performed on the shared data during the critical section. The shared data, the local copie(s), and the reference copie(s) are compared to determine that a race has been detected. An indication can be output that a race has occurred or the race can be corrected.
摘要:
Software program robustness is improved by successfully masking memory safety errors in the software program. For instance, at least some memory safety errors in a software program can be masked by using a runtime memory manager that approximates the semantics of an infinite heap memory manager. In one example, an approximation of an infinite heap memory manager is implemented by configuring a parameterized memory manager with parameter values such as padding to be added to each allocation on the heap and the amount of deferment before executing a call to free memory on the heap. Ideal configurations balance expected robustness with costs such as added memory and processing time. Ideal configurations can be identified through systematic search of a coordinate space of selected parameters. Ideal configurations can also be identified by statistically correlating success/failure data collected from execution of deployed instances of the software program to the configuration of the memory managers used therein.
摘要:
Typical computer programs may incur costly memory errors that result in corrupted data. A new memory model is presented wherein it may be determined that certain data is critical and critical data may be stored and protected during computer application execution. Critical Memory allows that data determined to be critical may be stored and retrieved using functions enabled to increase the reliability of the data. Functions are presented enabling allocation of redundant computer memory; functions are presented enabling consistently writing critical data to redundant locations; and functions are presented enabling reading critical data while ensuring that the data read is consistent with the most recent write of critical data and enabled to repair inconsistent data. The memory model and functions presented are designed to be compatible with existing third-party libraries.
摘要:
A program creation system is described which generates sets of subprograms for respective input-output examples. The program creation system then groups the sets into partitions by performing an intersection operation. According to one aspect, the program creation system generates subprograms so as to exclude tokens that are not represented by the input strings of the input-output examples. According to another aspect, the program creation system first generates the subprograms without attempting to generate loop-type expressions. If this operation produces unsatisfactory results, the program creation system repeats its processing, this time including loop-type expressions. According to another aspect, the program creation system performs the grouping operation using an expedited graph-intersection operation. According to another aspect, the program creation system ranks programs (which are created based on the results of the grouping operation) based on the presence of preferred features found in the programs.
摘要:
Typical computer programs may incur costly memory errors that result in corrupted data. A new memory model is presented wherein it may be determined that certain data is critical and critical data may be stored and protected during computer application execution. Critical Memory allows that data determined to be critical may be stored and retrieved using functions enabled to increase the reliability of the data. Critical Memory presents a memory model where a subset of memory designated as critical memory may be used to store a subset of data deemed critical data. Probabilistic guarantees of data value consistency are provided by the employment of the new memory model. The memory model and functions presented are compatible with existing third-party libraries such that third-party libraries may be compatibly called from processes using critical memory.
摘要:
An exemplary policy management layer includes a policy module for a web-based service where the policy module includes logic to make a policy-based decision and an application programming interface (API) associated with an execution engine associated with resources for providing the web-based service, where the API is configured to communicate information from the execution engine to the policy module and where the API is configured to receive a policy-based decision from the policy module and to communicate the policy-based decision to the execution engine to thereby effectuate policy for the web-based service. Various other devices, systems, methods, etc., are also described.
摘要:
Deployment and execution of a service in a multiple datacenter environment may be facilitated using datacenter execution templates. Developers, business managers, and other interested parties may select and/or modify a declarative execution template embodying multiple factors. The execution template may then be used to generate an execution plan, which is then executed by datacenters which run the service. The execution template may be optimized after deployment of the service, allowing for ongoing adjustment in response to changing business, regulatory, and operational factors.
摘要:
Described herein are methods and systems for providing software development services more efficiently. Re-computation of results each time a service request is received can be avoided by maintaining a cache of results from having processed requests. Results are stored under a unique mapping of request-results pairs that at least in part rely on a file fingerprint hash of the contents of the input files related to the request. In network environment with a client requester and service provider unnecessary transmission is also avoided by first presenting results for requests are in form of a unique file identifier identifying one or more files holding the content of the results. The file identifier is used to search a cache local to the requesting client prior to requesting transmission of the results. The file identifier may also include an indicator for indicating a location from which the results may be retrieved.
摘要:
A programming-language construct called a program history, and a method, system, apparatus, and data structure for translating computer source code that contains the program history construct. A program history captures data regarding the state of the program as it executes and makes this data available to functions called history operators, which operate on the data. The source code contains a history operand, an instance of the history operand, and the history operator. The presence of the history operand directs a translator to cause history data to be saved regarding the sequence of data that is associated with the operand instance as the program executes. The presence of the history operator directs the translator to cause a function to be performed that saves history data. In this way, the programmer is freed from writing tedious and error-prone bookkeeping code that declares variables and saves history data into those declared variables.