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

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 閱讀(402) 評論(0)  編輯 收藏 引用 所屬分類: OS
<2025年12月>
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

常用鏈接

留言簿(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>
            亚洲激情婷婷| 欧美成人午夜激情视频| 久久偷窥视频| 午夜精品久久| 欧美激情国产日韩精品一区18| 先锋影音久久久| 欧美日韩国产在线| 免费一区二区三区| 国产一区视频网站| 亚洲视频电影在线| 在线亚洲观看| 猛男gaygay欧美视频| 久久精品日韩欧美| 国产精品欧美日韩一区| 一区二区免费在线观看| 99精品视频免费观看视频| 久久美女性网| 噜噜噜在线观看免费视频日韩 | 在线视频欧美日韩精品| 亚洲精品三级| 久久在精品线影院精品国产| 久久精品主播| 国产一区二区三区观看| 午夜日韩在线| 欧美在线日韩精品| 国产区精品在线观看| 亚洲一区二区在线播放| 午夜精品一区二区三区在线播放| 欧美日韩高清区| 亚洲乱码国产乱码精品精| avtt综合网| 欧美色视频日本高清在线观看| 亚洲人成啪啪网站| 亚洲免费观看在线观看| 欧美激情精品久久久久久黑人 | 久久久99免费视频| 韩国av一区二区三区| 久久精品理论片| 久久亚洲综合色一区二区三区| 很黄很黄激情成人| 久久先锋影音| 亚洲人成小说网站色在线| av成人免费观看| 国产精品久久久久三级| 久久se精品一区二区| 欧美777四色影视在线| 亚洲免费观看| 国产精品天美传媒入口| 久久伊伊香蕉| 亚洲免费高清| 久久精品国产亚洲一区二区三区| 国内精品免费在线观看| 理论片一区二区在线| 9久re热视频在线精品| 久久精品人人| 亚洲精品一区二区在线观看| 国产精品激情| 久久久999精品免费| 欧美激情1区2区3区| 亚洲精品欧美精品| 欧美日韩在线不卡一区| 亚洲一区二区三| 久久久综合视频| 国产精品免费看久久久香蕉| 亚洲日本一区二区| 亚洲欧美色一区| 一区二区亚洲精品国产| 欧美国产日本| 亚洲综合日本| 亚洲福利一区| 午夜精品久久久久久久久久久久 | 欧美gay视频| 亚洲娇小video精品| 欧美视频日韩视频在线观看| 亚洲欧美日韩综合aⅴ视频| 久久青草久久| 99国产精品久久久久久久久久 | 欧美日韩1区2区3区| 亚洲一区二区三区色| 久久米奇亚洲| 一区二区日韩伦理片| 国产一区二区三区日韩| 欧美精品v国产精品v日韩精品| 亚洲淫性视频| 欧美黑人多人双交| 午夜亚洲福利| 在线成人中文字幕| 国产精品久久久久久久久久直播| 免费亚洲一区| 午夜在线精品偷拍| 亚洲精品护士| 久久综合导航| 亚洲欧美日韩国产另类专区| 亚洲成人直播| 国产欧美一区二区精品忘忧草| 欧美99在线视频观看| 久久激情视频免费观看| 一本色道久久综合亚洲精品按摩| 久久精品亚洲一区二区| 亚洲午夜精品网| 亚洲精品视频在线播放| 狠狠久久婷婷| 国产精品劲爆视频| 欧美一级专区| 亚洲在线视频免费观看| 亚洲精品在线免费| 亚洲电影观看| 久久这里有精品15一区二区三区| 亚洲精选在线| 亚洲激情视频网站| 在线播放国产一区中文字幕剧情欧美| 欧美日韩第一区日日骚| 久久久综合免费视频| 欧美与欧洲交xxxx免费观看 | 欧美在线视频a| 9i看片成人免费高清| 亚洲国产午夜| 欧美99在线视频观看| 久久久综合香蕉尹人综合网| 久久精品日韩| 久久久精品日韩| 久久久999| 久久夜色精品国产欧美乱极品| 久久动漫亚洲| 亚洲午夜小视频| 欧美一区二区国产| 久久国产一区| 久久久久国产一区二区| 久久久人人人| 狼人社综合社区| 亚洲欧洲一区二区在线播放| 亚洲高清在线| 亚洲免费观看| 亚洲一区二区高清| 欧美一级夜夜爽| 亚洲欧美日本视频在线观看| 亚洲资源在线观看| 欧美亚洲一区| 美女精品一区| 欧美日韩在线三区| 欧美日韩精品一区二区三区四区| 浪潮色综合久久天堂| 美女露胸一区二区三区| 欧美福利一区二区| 国产精品久久久99| 国内精品伊人久久久久av一坑| 在线精品亚洲一区二区| 99www免费人成精品| 亚洲一区二区视频在线| 久久久亚洲国产美女国产盗摄| 欧美福利视频| 夜夜嗨av一区二区三区中文字幕| 制服丝袜亚洲播放| 久久精品夜色噜噜亚洲a∨| 欧美不卡在线| 国产精品白丝av嫩草影院| 欧美二区不卡| 韩国成人精品a∨在线观看| 最新高清无码专区| 午夜精品一区二区三区四区| 麻豆精品国产91久久久久久| 亚洲欧洲偷拍精品| 欧美一区二区视频在线| 久久天堂精品| 国产精品theporn88| 一区二区三区在线免费播放| 一本色道久久88综合亚洲精品ⅰ| 欧美一区亚洲| 亚洲风情亚aⅴ在线发布| 亚洲一区二区三区在线观看视频 | 亚洲国产影院| 欧美一级淫片aaaaaaa视频| 久久综合九色99| 国产精品丝袜91| 亚洲精品日韩在线观看| 久久久久91| 夜夜嗨一区二区| 欧美中文字幕久久| 国产精品一区一区| 夜夜嗨av一区二区三区网页| 蜜桃久久av一区| 亚洲欧美日韩国产成人精品影院| 蜜臀va亚洲va欧美va天堂 | 国产精品亚洲欧美| 99精品视频网| 欧美成人嫩草网站| 午夜亚洲激情| 欧美三区美女| 亚洲国产日韩欧美综合久久 | 亚洲线精品一区二区三区八戒| 久久亚洲综合色| 午夜亚洲性色福利视频| 欧美视频免费| 一本色道久久88综合日韩精品| 欧美成人精品1314www| 欧美一区二区在线看| 欧美日韩精品免费观看| 一区二区三区国产在线| 欧美黄色大片网站| 久久影院午夜片一区|