Operating system: Difference between revisions

Content deleted Content added
Citation bot (talk | contribs)
Altered doi-broken-date. | Use this bot. Report bugs. | #UCB_CommandLine
m Changed "actually" in accordance with MOS:NOTE
Tags: Visual edit Mobile edit Mobile web edit Advanced mobile edit
Line 24:
==Types of operating systems==
===Multicomputer operating systems===
With [[multiprocessor]]s multiple CPUs share memory. A [[multicomputer]] or [[cluster computer]] has multiple CPUs, each of which [[distributed memory|has its own memory]]. Multicomputers were developed because large multiprocessors are difficult to engineer and prohibitively expensive;{{sfn|Tanenbaum|Bos|2023|p=557}} they are universal in [[cloud computing]] because of the size of the machine needed.{{sfn|Tanenbaum|Bos|2023|p=558}} The different CPUs often need to send and receive messages to each other;{{sfn|Tanenbaum|Bos|2023|p=565}} to ensure good performance, the operating systems for these machines need to minimize this copying of [[Network packet|packet]]s.{{sfn|Tanenbaum|Bos|2023|p=562}} Newer systems are often [[multiqueue]]—separating groups of users into separate [[Priority queue|queue]]s—to reduce the need for packet copying and support more concurrent users.{{sfn|Tanenbaum|Bos|2023|p=563}} Another technique is [[remote direct memory access]], which enables each CPU to access memory belonging to other CPUs.{{sfn|Tanenbaum|Bos|2023|p=565}} Multicomputer operating systems often support [[remote procedure call]]s where a CPU can call a [[Procedural programming|procedure]] on another CPU,{{sfn|Tanenbaum|Bos|2023|p=569}} or [[distributed shared memory]], in which the operating system uses [[virtualization]] to generate shared memory that does not actuallyphysically exist.{{sfn|Tanenbaum|Bos|2023|p=571}}
 
===Distributed systems===
Line 467:
* The address might refer to memory that has restricted access due to, e.g., [[Memory protection#Protection keys|key]], [[Memory protection#Protection rings|ring]].}} memory, but nonetheless has been allocated to it, the kernel is interrupted {{See above|{{Section link||Memory management}}}}. This kind of interrupt is typically a [[page fault]].
 
When the kernel detects a page fault it generally adjusts the virtual memory range of the program which triggered it, granting it access to the memory requested. This gives the kernel discretionary power over where a particular application's memory is stored, or even whether or not it has actually been allocated yet.
 
In modern operating systems, memory which is accessed less frequently can be temporarily stored on a disk or other media to make that space available for use by other programs. This is called [[paging|swapping]], as an area of memory can be used by multiple programs, and what that memory area contains can be swapped or exchanged on demand.