linux 中斷 進程,linux中斷分上下部分原因

中斷處理程序在處理中斷時起到了關鍵作用,也是一個中斷程序必不可少的部分。不過,現如今的中斷處理流程都會分為兩部分:上半部分(top half)和下半部分(bottom half)。為什么要將一個中斷分為如此兩部分?下面的幾個經典原因可以很好的詮釋這個問題。

1.中斷可以隨時的打斷處理機對其他程序的執行,如果被打斷的代碼對系統很重要,那么此時中斷處理程序的執行時間應該是越短越好。

2.通過上文我們知道,中斷處理程序正在執行時,會屏蔽同條中斷線上的中斷請求;而更嚴重的是,如果設置了IRQF_DISABLED,那么該中斷服務程序執行是會屏蔽所有其他的中斷請求。那么此時應該讓中斷處理程序執行的越快越好。

上面的幾個例子都要求中斷服務程序的執行時間越短越好。一般的,中斷處理程序會在上半部分執行。而事實上,幾乎所有的情況,上半部分就只執行中斷處理程序。因此,我們可以這樣認為:一個完整的中斷處理流程是由中斷處理程序和下半部分共同完成的。

這樣劃分是有一定原因的,因為我們必須有一個快速、異步而且簡單的處理程序專門來負責對硬件的中斷請求做出快速響應,與此同時也要完成那些對時間要求很嚴格的操作。而那些對時間要求相對寬松,其他的剩余工作則會在稍候的任意時間執行,也就是在所謂的下半部分去執行。

總之,這樣劃分一個中斷處理過程主要是希望減少中斷處理程序的工作量(當然了,理想情況是將全部工作都拋給下半段。但是中斷處理程序至少應該完成對中斷請求的相應。),因為在它運行期間至少會使得同級的中斷請求被屏蔽,這些都直接關系到整個系統的響應能力和性能。而在下半段執行期間,則會允許響應所有的中斷。

和上半段只能通過中斷處理程序實現不同的是,下半部可以通過多種機制來完成:小任務(tasklet),工作隊列,軟中斷。在本博客后續的文章當中你會看到,不管是那種機制,它們均為下半部提供了一種執行機制,比上半部靈活多了。至于何時執行,則由內核負責。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/529811.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/529811.shtml
英文地址,請注明出處:http://en.pswp.cn/news/529811.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

linux 運行eclipse,解決Linux下Eclipse啟動錯誤

下載Eclipse后一打開就報錯:JVM terminated. Exit code-1-Xms40m-Xmx256m-XX:MaxPermSize256m-Djava.class.path/usr/local/eclipse/plugins/org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar-os linux-ws gtk-arch x86-showsplash /usr/local/eclipse//pl…

linux家庭云服務器,linux服務器云(linux家用云服務器)

可以。注:云服務器有Linux版本,實際上就是Linux在本地環境放到了云上公網環境中,其它操作都是一樣的。云主機是集群服務器開發出的虛擬的機器,所以,這個因素不用考慮就問題不大。需要linux系統直接在預裝系統安裝就可以…

linux13位時間戳,Kotlin 處理Linux時間戳

思路1. 獲取時間可以采用的方式有直接獲取系統時間System.currentTimeMillis()或者使用Calendar類獲取時間2. 處理時間在使用Calendar時,可以直接由Calendar的set方法對于時間進行設置由于Calendar的時間格式并不是我們希望得到的Linux時間戳格式,所以我…

linux腳本done報錯,linux – 如何在shell腳本中處理錯誤/異常?

下面是我在bash中執行的腳本.它工作正常.fileexist0for i in $( ls /data/read-only/clv/daily/Finished-HADOOP_EXPORT_&processDate#.done); domv /data/read-only/clv/daily/Finished-HADOOP_EXPORT_&processDate#.done /data/read-only/clv/daily/archieve-wip/fil…

linux 建立交叉編譯環境變量,ARM-Linux-gcc-4.4.3交叉編譯環境終于搭建

Linux交叉編譯環境終于搭建完成具體步驟:0、軟件請到友善之臂的官網下載1、解壓tar zxvf arm-linux-gcc-4.4.3-20100728.tar.gz-C/(別make了,直接解壓后就可以)2、設置環境變量:首先vi ~/.bashrc然后在最后加上exportPATH$PATH:/opt/Friendly…

查詢linux版本信息 sp,查看Linux系統版本和內核信息

Linux查看Linux系統版本信息1. 查看內核版本1) 方法一:登錄到linux執行cat /proc/version[[email protected]_32bit_ip12 ~]$ cat /proc/versionLinux version 2.6.18-194.el5 ([email protected]) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-48)) #1 SMP Fri Apr…

linux環境對xml的影響,Linux下XPath對xml解析

#ifndef CONF_XML_H#define CONF_XML_H// xml文件Z在《Linux下獲取xml調試信息等級》里有#include #include #include #include #include #include #include #include #define ROOT "root" //根節點#define SON_1 "can0" //兒子節點1#define SON_2 "c…

linux系統下壓縮文件,Linux系統下文件的壓縮.打包與解壓

處理 .zip 文件的 zip 和 unzipzip 和 unzip 程序位于 /usr/bin 目錄中,它們和 MS - DOS 下的 pkzip、pkunzip 以及 MS-windows 的 Winzip 軟件功能一樣、可將文件壓縮成 .zip 文件以節省硬盤空間,而當需要的時候再將壓縮文件解開。壓縮文件的 zip 命令z…

c語言程序執行完main函數后,一個c程序在執行main函數之前和main之后都做了那些事情啊該如何解決...

當前位置:我的異常網 C語言 一個c程序在執行main函數之前和main之后都做了那些一個c程序在執行main函數之前和main之后都做了那些事情啊該如何解決www.myexceptions.net 網友分享于:2013-04-17 瀏覽:19次一個c程序在執行main函數之前和main之后都做了…

c語言stm32串口控制單片機,實用STM32的串口控制平臺的實現

假設我要編寫一個自己的指令腳本, 來讀取MCU的關鍵信息,關鍵字為mcu, 文件命名為shell_mcu.c; 當輸入“mcu rd 0”時顯示MCU的FLASH大小,輸入“mcu rd 1”時讀取MCU的唯一ID信息。shell_mcu.c源代碼:/*****…

time_t c語言 2038,什么是2038問題?

什么是2038問題不知道你有沒有聽過2038問題?無論你是否聽過,本文將帶你認識什么是2038問題。Unix時間戳定義為從格林威治時間1970年01月01日00時00分00秒(北京時間1970年01月01日08時00分00秒)起至現在的總秒數。而在C語言中,常用time_t來表示。舉個例子…

C語言精度控制整形,C語言 湊算式 控制精度問題

想問一下,if語句中為什么寫上*1.0之后,輸出的就是對的個數29,但把*1.0刪掉后,輸出的個數就遠大于29了?還想討教一下各位高手,除了這種暴力求法,還有其他的比較好的方法嗎?非常感謝/*…

c語言 l l next,nexttowardl

在頭文件中定義float nextafterf( float from, float to );(1)(since C99)double nextafter( double from, double to );(2)(since C99)long double nextafterl( long double from, long double to );(3)(since C99)float nexttowardf( float from, long doub…

c 語言 readline,如何用C實現一個readLine()函數-?該函數每次讀入文本文件的一行并打印到屏幕...

如何用C實現一個readLine()函數- 該函數每次讀入文本文件的一行并打印到屏幕(2012-04-13 00:23:41)標簽:打印文本文件如何雜談如何用C實現一個readLine()函數? 該函數每次讀入文本文件的一行并打印到屏幕以前看到過這方面的討論http://bbs.chinaunix.net/viewthrea…

STC單片機C語言中的數據類型,stc單片機c語言程序設計 第9章 stc單片機c語言數據類型.pdf...

STC單片 機C語言變量和數據類型主講:何賓Email :hebinmail.buct.edu.cn2016.03C語言中的常量和變量對于基本數據類型,按其值是否可變又分為常量和變量兩種。在程序執行過程中,其值不發生改變的量稱為常量,其值可變的量…

c4droid語言游戲,c4droid手機編程軟件下載

c4droid可以說是手機端最好的編程軟件,沒有之一,軟件可以幫助大家在手機上進行編寫C代碼,讓各位程序員們隨時隨地都能編程。操縱簡單,功能強大。c4droid軟件介紹c4droid是款Android設備上的C/C程序編譯器,默認以tcc(tiny c compil…

c語言圖像函數怎么用,請教 怎么才能用C輸出一個函數的圖像?大俠 幫幫忙啊...

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓發一下我當年的練習程序#include#include#include#includedouble exp(double x){double l,m;unsigned int n;l1; m1; n0;do {n;mx*m/n;llm; }while ((-1.0E-6<m)&&(m<1.0E-6));return l; }main(){int graphmode, gra…

創業沖突的五種解決方法是_不會說話,不懂處理人際沖突怎么辦?《溝通的藝術》5步教會你...

關注“夏娃藍空間”&#xff0c;陪你成長為更好的自己。想要良好地解決沖突&#xff0c;一定要有“這是我們兩個人共同的事”的態度。今年夏天最熱門的電視劇非《三十而已》莫屬了&#xff0c;而撐起了這部劇的流量的廣大觀眾&#xff0c;基本都是集中在逐步靠近中青年階段的90…

android gsensor 坐標,MTK Android G sensor 原理,配置,調試

原理圖&#xff1a;g_sensor的驅動目錄在mediatek/custom/common/kernel/accelerometer下。一、g_sensor 的移植步驟1、在ProjectConfig.mk中配置相關的g_sensor例如 CUSTOM_KERNEL_ACCELEROMETER kxtf92、在mediatek/custom/common/kernel/accelerometer目錄中添加 g_sensor的…

網貸大數據什么時候會好_如果人類把地球鉆穿了,會發生什么?大數據分析告訴你多可怕...

很多科研人員在做實驗的時候&#xff0c;少不了被旁人嘲笑或者蔑視的情況&#xff0c;因為常人往往是無法理解他們的想法的。例如曾經就有科研人員想要對地球進行鉆探&#xff0c;看看能夠在地表上鉆多深&#xff0c;是否能夠將地球給鉆穿了。很多人都會認為這種做法沒有意義而…