Execution (computing): Difference between revisions

Content deleted Content added
No edit summary
Tags: Reverted Mobile edit Mobile web edit
Citation bot (talk | contribs)
Removed URL that duplicated identifier. | Use this bot. Report bugs. | #UCB_CommandLine
 
(17 intermediate revisions by 10 users not shown)
Line 2:
{{Program execution}}
 
'''Execution''' in [[computer engineering|computer]] and software engineering is the process by which a [[computer]] or [[virtual machine]] interprets and acts on the instructions of a [[computer program]]. Each instrucуtioninstruction of a program is a description of a particular action which must be carriцггуоуоуцужcarried out, in order for a specific problem to be solved. Execution involves repeatedly following a "[[Instruction cycle|fetch–decode–execute]]" cycle for each instruction done by the [[control unit]]. As the executing machine follows the instructions, specific effects are produced in accordance with the [[Formal semantics of programming languages|semantics]] of those instructions.
Улуугушушугуклушгуцдцщцшлцущ не уed out, in order for a specific problem to be solved. Execution involves repeatedly following a "[[Instruction cycle|fetch–decode–execute]]" cycle for each instruction done by the [[control unit]]. As the executing machine follows the instructions, specific effects are produced in accordance with the [[Formal semantics of programming languages|semantics]] of those instructions.
 
Programs for a computer may be executed in a [[Batch processing|batch process]] without human interaction or a [[User (computing)|user]] may type [[Command (computing)|commands]] in an [[Session (computer science)|interactive session]] of an [[Interpreter (computing)|interpreter]]. In this case, the "commands" are simply program instructions, whose execution is chained together.
Line 26 ⟶ 25:
{{Main|Context switch}}
 
In order for programs and [[interrupt handler]]s to work without interference and share the same hardware memory and access to the I/O system, in a [[Computer multitasking|multitasking operating system]] running on a digital system with a single CPU/MCU, it is required to have some sort of software and hardware facilities to keep track of an executing process's data (memory page addresses, registers etc.) and to save and recover them back to the state they were in before they were suspended. This is achieved by a context switching.<ref name=":0">{{Cite book |last=Bovet |first=Daniel P. |url=https://www.worldcat.org/oclc/64549743 |title=Understanding the Linux Kernel |date=2005 |publisher=O'Reilly |others=Marco Cesati |isbn=0-596-00565-2 |edition=3 |___location=Sevastopol, CA |oclc=64549743}}</ref>{{Rp|___location=3.3}}<ref>{{Cite web |date=2021-06-10 |title=Difference between Swapping and Context Switching |url=https://www.geeksforgeeks.org/difference-between-swapping-and-context-switching/ |access-date=2022-08-10 |website=GeeksforGeeks |language=en-us}}</ref> The running programs are often assigned a [[Process-context identifier|Process Context IDentifiers]] (PCID).
 
In Linux-based operating systems, a set of data stored in [[Processor register|registers]] is usually saved into a process descriptor in memory to implement switching of context.<ref name=":0" /> PCIDs are also used.