青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 297,  comments - 15,  trackbacks - 0

A context switch (also sometimes referred to as a process switch or a task switch ) is the switching of the CPU (central processing unit) from one process or thread to another.

A process (also sometimes referred to as a task ) is an executing (i.e., running) instance of a program. In Linux, threads are lightweight processes that can run in parallel and share an address space (i.e., a range of memory locations) and other resources with their parent processes (i.e., the processes that created them).

A context is the contents of a CPU's registers and program counter at any point in time. A register is a small amount of very fast memory inside of a CPU (as opposed to the slower RAM main memory outside of the CPU) that is used to speed the execution of computer programs by providing quick access to commonly used values, generally those in the midst of a calculation. A program counter is a specialized register that indicates the position of the CPU in its instruction sequence and which holds either the address of the instruction being executed or the address of the next instruction to be executed, depending on the specific system.

Context switching can be described in slightly more detail as the kernel operating system) performing the following activities with regard to processes (including threads) on the CPU: (1) suspending the progression of one process and storing the CPU's state (i.e., the context) for that process somewhere in memory, (2) retrieving the context of the next process from memory and restoring it in the CPU's registers and (3) returning to the location indicated by the program counter (i.e., returning to the line of code at which the process was interrupted) in order to resume the process. (i.e., the core of the

A context switch is sometimes described as the kernel suspending execution of one process on the CPU and resuming execution of some other process that had previously been suspended. Although this wording can help clarify the concept, it can be confusing in itself because a process is , by definition, an executing instance of a program. Thus the wording suspending progression of a process might be preferable.

Context Switches and Mode Switches

Context switches can occur only in kernel mode . Kernel mode is a privileged mode of the CPU in which only the kernel runs and which provides access to all memory locations and all other system resources. Other programs, including applications, initially operate in user mode , but they can run portions of the kernel code via system calls . A system call is a request in a Unix-like operating system by an active process (i.e., a process currently progressing in the CPU) for a service performed by the kernel, such as input/output (I/O) or process creation (i.e., creation of a new process). I/O can be defined as any movement of information to or from the combination of the CPU and main memory (i.e. RAM), that is, communication between this combination and the computer's users (e.g., via the keyboard or mouse), its storage devices (e.g., disk or tape drives), or other computers.

The existence of these two modes in Unix-like operating systems means that a similar, but simpler, operation is necessary when a system call causes the CPU to shift to kernel mode. This is referred to as a mode switch rather than a context switch, because it does not change the current process.

Context switching is an essential feature of multitasking operating systems. A multitasking operating system is one in which multiple processes execute on a single CPU seemingly simultaneously and without interfering with each other. This illusion of concurrency is achieved by means of context switches that are occurring in rapid succession (tens or hundreds of times per second). These context switches occur as a result of processes voluntarily relinquishing their time in the CPU or as a result of the scheduler making the switch when a process has used up its CPU time slice .

A context switch can also occur as a result of a hardware interrupt , which is a signal from a hardware device (such as a keyboard, mouse, modem or system clock) to the kernel that an event (e.g., a key press, mouse movement or arrival of data from a network connection) has occurred.

Intel 80386 and higher CPUs contain hardware support for context switches. However, most modern operating systems perform software context switching , which can be used on any CPU, rather than hardware context switching in an attempt to obtain improved performance. Software context switching was first implemented in Linux for Intel-compatible processors with the 2.4 kernel.

One major advantage claimed for software context switching is that, whereas the hardware mechanism saves almost all of the CPU state, software can be more selective and save only that portion that actually needs to be saved and reloaded. However, there is some question as to how important this really is in increasing the efficiency of context switching. Its advocates also claim that software context switching allows for the possibility of improving the switching code, thereby further enhancing efficiency, and that it permits better control over the validity of the data that is being loaded.

The Cost of Context Switching

Context switching is generally computationally intensive. That is, it requires considerable processor time, which can be on the order of nanoseconds for each of the tens or hundreds of switches per second. Thus, context switching represents a substantial cost to the system in terms of CPU time and can, in fact, be the most costly operation on an operating system.

Consequently, a major focus in the design of operating systems has been to avoid unnecessary context switching to the extent possible. However, this has not been easy to accomplish in practice. In fact, although the cost of context switching has been declining when measured in terms of the absolute amount of CPU time consumed, this appears to be due mainly to increases in CPU clock speeds rather than to improvements in the efficiency of context switching itself.

One of the many advantages claimed for Linux as compared with other operating systems, including some other Unix-like systems, is its extremely low cost of context switching and mode switching.


from:
http://blog.csdn.net/wave_1102/archive/2007/09/04/1771745.aspx

posted on 2010-02-25 23:09 chatler 閱讀(389) 評論(0)  編輯 收藏 引用 所屬分類: OS
<2025年9月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

常用鏈接

留言簿(10)

隨筆分類(307)

隨筆檔案(297)

algorithm

Books_Free_Online

C++

database

Linux

Linux shell

linux socket

misce

  • cloudward
  • 感覺這個博客還是不錯,雖然做的東西和我不大相關,覺得看看還是有好處的

network

OSS

  • Google Android
  • Android is a software stack for mobile devices that includes an operating system, middleware and key applications. This early look at the Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language.
  • os161 file list

overall

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            中日韩在线视频| 久久综合色天天久久综合图片| 一区二区三区国产精品| 狠狠网亚洲精品| 一区一区视频| 亚洲欧洲美洲综合色网| 日韩视频在线一区二区三区| 一本色道**综合亚洲精品蜜桃冫| 亚洲最新视频在线播放| 亚洲一区网站| 久久久天天操| 亚洲激情亚洲| 正在播放亚洲一区| 亚洲欧美日韩国产成人| 欧美一进一出视频| 欧美sm视频| 国产精品视频999| 激情欧美日韩| 99精品国产在热久久下载| 亚洲欧美日韩精品久久奇米色影视 | 国产一区二区视频在线观看 | 久久岛国电影| 免费在线视频一区| 国产区欧美区日韩区| 欧美影院一区| 欧美欧美天天天天操| 国产酒店精品激情| 日韩视频一区二区三区在线播放免费观看 | 欧美韩日一区二区三区| 国产精品美女久久久浪潮软件 | 欧美不卡视频一区发布| 欧美午夜精品电影| 亚洲丰满在线| 久久久久久久999| 在线看一区二区| 亚洲精品视频一区| 欧美一区二区性| 亚洲精品久久久久中文字幕欢迎你 | 欧美精品日本| 激情视频一区二区三区| 在线亚洲欧美视频| 亚洲大胆人体视频| 久久久水蜜桃| 国产乱子伦一区二区三区国色天香| 亚洲激情在线视频| 麻豆精品精华液| 欧美在线播放一区| 国产区亚洲区欧美区| 午夜精品一区二区三区在线视| 欧美激情麻豆| 久久综合久久综合这里只有精品| 国产亚洲精品久久飘花| 午夜免费电影一区在线观看| 日韩一级精品| 欧美日韩亚洲激情| 99成人在线| 亚洲精品久久久一区二区三区| 久久综合九色综合欧美就去吻| 国产午夜精品久久久| 欧美一区二视频| 午夜欧美大尺度福利影院在线看| 欧美视频在线免费看| 中文欧美在线视频| 一区二区三区黄色| 国产精品美女久久| 久久国内精品自在自线400部| 亚洲欧美经典视频| 国产亚洲成年网址在线观看| 久久精彩免费视频| 久久久99久久精品女同性| 在线观看成人一级片| 欧美成人一区二区| 欧美精品免费播放| 性欧美大战久久久久久久久| 亚洲欧美在线一区| 在线成人av.com| 亚洲第一中文字幕| 国产精品99一区| 久久一区免费| 欧美精品久久久久久| 亚洲一区三区电影在线观看| 亚洲欧美日韩视频二区| 国产一区二区成人| 亚洲国产精品第一区二区三区 | 中文高清一区| 国产欧美一区在线| 久久久久国产一区二区三区四区| 亚洲人成欧美中文字幕| 欧美—级在线免费片| 在线视频你懂得一区| 亚洲小说春色综合另类电影| 国内精品99| 91久久线看在观草草青青| 欧美人与禽猛交乱配| 欧美亚洲一区二区三区| 久久久久一本一区二区青青蜜月| 亚洲国产精品ⅴa在线观看 | 亚洲国产精品热久久| 一本色道久久综合亚洲91| 国产精品视频你懂的| 欧美福利视频一区| 国产精品久久一区主播| 女人色偷偷aa久久天堂| 国产精品99一区二区| 麻豆国产精品va在线观看不卡| 欧美激情网站在线观看| 欧美在线free| 欧美日韩在线亚洲一区蜜芽| 久久精品视频免费| 欧美日韩国产一区精品一区| 欧美专区第一页| 欧美精品尤物在线| 久久久欧美精品| 国产精品ⅴa在线观看h| 免费观看在线综合| 国产日本欧美一区二区三区| 亚洲日本视频| 亚洲电影成人| 欧美在线999| 亚洲综合视频在线| 欧美激情中文不卡| 欧美成人免费全部观看天天性色| 欧美三级网址| 日韩视频―中文字幕| 亚洲国产精品一区在线观看不卡 | 亚洲一区二区三区三| 最新国产成人在线观看| 亚洲欧洲精品成人久久奇米网| 国产欧美一区视频| 亚洲一区二区三区在线观看视频 | 久久国产66| 欧美亚洲自偷自偷| 国产精品久久久久影院亚瑟 | 国产日产欧产精品推荐色| 在线亚洲高清视频| 亚洲午夜高清视频| 欧美日韩精品一区| 亚洲精品一区二区三区av| 亚洲高清一二三区| 久久亚洲视频| 欧美va亚洲va日韩∨a综合色| 欧美激情导航| 欧美日韩一区二| 亚洲黄色小视频| 亚洲美女在线观看| 欧美承认网站| 99re热精品| 亚洲图片欧洲图片日韩av| 欧美三级网址| 亚洲神马久久| 欧美在线观看视频一区二区三区 | 亚洲小视频在线观看| 国产精品sm| 午夜精品国产更新| 久久精品二区| 亚洲第一黄色| 欧美人成在线| 香蕉av福利精品导航| 开心色5月久久精品| 亚洲激情av| 欧美视频精品在线| 先锋影音网一区二区| 开心色5月久久精品| 亚洲欧洲美洲综合色网| 欧美视频精品在线观看| 性久久久久久久久| 欧美成年人网站| 在线一区二区日韩| 国产欧美日韩亚州综合| 久久男人资源视频| 99视频有精品| 久久久久看片| 一区二区三区高清视频在线观看| 国产欧美一区视频| 欧美电影在线播放| 午夜精品久久久久久久白皮肤 | 亚洲天堂网在线观看| 国产专区欧美专区| 欧美激情一区二区三区在线视频观看 | 国产欧美三级| 美女视频一区免费观看| 亚洲午夜一区二区| 欧美mv日韩mv国产网站| 香蕉久久精品日日躁夜夜躁| 亚洲国产欧美一区二区三区久久| 欧美三级网址| 欧美 日韩 国产 一区| 亚洲伊人第一页| 亚洲日本成人| 免费欧美电影| 久久国产精品黑丝| 亚洲欧美大片| 亚洲最新在线| 亚洲国产成人91精品| 国产精品一区二区三区免费观看| 女同性一区二区三区人了人一| 午夜精品成人在线| 在线亚洲激情| 亚洲美女淫视频| 亚洲人www|