第五周測試

---恢復內容開始---

一 視頻知識
1 linux系統下如何區分內核態與用戶態
在內核態:cs:eip可以是任意的地址,4G的內存地址空間
在用戶態:cs:eip只能訪問0x00000000—0xbfffffff的地址空間
2 系統調用的三層皮:xyz、system_call和sys_xyz
第一層:API,第一層是指Libc中定義的API,這些API封裝了系統調用,使用int?0x80觸發一個系統調用中斷;當然,并非所有的API都使用了系統調用,如完成數學加減運算的API就沒有使。用系統調用;也有可能某個API使用了多個系統調用;這一層存在的價值就是為應用程序員提供易于使用的API來調用系統調用;
第二層:中斷向量對應的,運行于內核態。system_call是所有系統調用在內核的入口點,在其中的開始處保護用戶態程序執行上下文,結束處恢復用戶態程序執行上下文,在中間根據傳入的系統調用號對應的中斷服務程序;
第三層:sys_xyz?系統調用封裝例程:執行具體的系統調用操作,完成用戶的系統調用請求;系統調用有不同種類的服務程序
二 測試實驗2
1 首先用mdkir 9225 新建文件夾,cd 9225進入此目錄下,使用命令vi main.c進入vim環境中編寫main.chanshu代碼
1249774-20171030010952027-257063477.png

2 使用命令gcc -S -o main.s main.c -m32其意義是將預處理文件編成.s文件,也就是將c代碼轉換成匯編代碼。使用命令gcc -g main.s -o main -m32,然后使用命令gdb main 進入gdb調試狀態
3 在gdb中使用l指令觀察函數,但出現了理解不了的亂碼。繼續向下操作設置斷點使用命令b*main 或者 break main,然后使用命令r使其運行一下,使用i r命令查看函數的exp eax ebp eip,觀察函數變化,之后重復使用命令n,意為查看下一條運行命令,再使用命令i r,以此下去但是不知道為什么函數運算一直出錯
1249774-20171030011608777-623678752.png
三 課本知識
通過閱讀第七章我了解到了什么是中斷,并知道了中斷一般分為異步中斷(一般由硬件引起)和同步中斷(一般由處理器本身引起)。
異步中斷:CPU處理中斷的時間過長,所以先將硬件復位,使硬件可以繼續自己的工作,然后在適當時候處理中斷請求中耗時的部分
同步中斷:CPU處理完中斷請求的所有工作后才反饋硬件。同步中斷應該處理能很快完成的一種中斷。
中斷相關函數
實現一個中斷,主要需要知道3個函數:(1)注冊中斷的函數(2)釋放中斷的函數(3)中斷處理程序的聲明
中斷處理的過程主要涉及3函數:
do_IRQ 與體系結構有關,對所接收的中斷進行應答
handle_IRQ_event 調用中斷線上所有中斷處理
ret_from_intr 恢復寄存器,將內核恢復到中斷前的狀態
中斷處理程序會異步執行,并且在最好的情況下它也會鎖定當前的中斷線。最起碼的,中斷處理程序要負責通知硬件設備中斷已被接收,操作系統也把處理硬件中斷的過程分為兩個部分。
上半部分(top half)簡單快速,執行的時候禁止一些或者全部中斷。只能通過中斷處理程序實現。只做有嚴格時限的工作。
下半部分(bottom half)稍后執行,而且執行期間可以響應所有的中斷。

這周將時間放在了測試二中,我用命令gcc -g main.c按照鏈接中的也沒有做出來,實驗四我下周會補上的,我會在下周將作業努力好好完成

轉載于:https://www.cnblogs.com/2017yaya/p/7752555.html

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

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

相關文章

網頁制作小技巧:dl dt dd標簽用法

< DOCTYPE html PUBLIC -WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml-strictdtd> 一般我們在做列表的時候通常只會用到ul和li,至于DL一般都很少用到&#xff0c;它也屬于列表類的標簽&#xff0c;下面說一下大概的用法&#xff1a; <dl>標記定義了一個定義列…

latex公式對齊_Word 寫公式最方便的方法

自從用上了word 2016之后&#xff0c;發現他的公式編輯器真香!真香!!他有了latex的優雅&#xff0c;又有了Mathtype的可視化效果&#xff0c;甚至更好哈&#xff0c;當編輯大量公式時也不會因為插件問題卡掉當前的努力。學起來也不復雜&#xff0c;反正是word. 強烈推薦。我們最…

路要怎么走?關于程序員成長的一點思考

程序員的我們&#xff0c;是否想過今后的路該怎么走、如何發展、技術怎樣提高?其實這也是我一直在思考的問題。下面就此問題&#xff0c;分享下我的看法。因為我閱歷有限&#xff0c;有什么說的不對的&#xff0c;大家見諒&#xff0c;千萬不要噴…… 一、程序員應該打好基礎 …

TensorFlow 常見API

數據類型轉換相關API Tensor Shape獲取以及設置相關API Tensor合并、分割相關API Error相關類API 常量類型的Tensor對象相關API 序列和隨機Tensor對象相關API Session相關API 邏輯運算符相關API 比較運算符相關API 調試相關API 圖像處理-編碼解碼相關API 圖像處理-調整大小相關…

python封裝繼承多態_淺談JavaScript的面向對象和它的封裝、繼承、多態

寫在前面既然是淺談&#xff0c;就不會從原理上深度分析&#xff0c;只是幫助我們更好地理解...面向對象與面向過程面向對象和面向過程是兩種不同的編程思想&#xff0c;剛開始接觸編程的時候&#xff0c;我們大都是從面向過程起步的&#xff0c;畢竟像我一樣&#xff0c;大家接…

將萬億以下的阿拉伯數字轉為中文金額

package test.practice.month3; public class Test005 { //可以不用swich case將123456789轉為一二三四五六七八九 //直接用char[] chars {一,二,三,四,五,六,七,八,九}; public static void main(String[] args) { System.out.println(getCMoney(102030405067L)); } private …

8.2 命令歷史

2019獨角獸企業重金招聘Python工程師標準>>> 命令歷史 history //查看之前的命令.bash_history //存放之前敲過的命令&#xff0c;在 /root/ 目錄下最大1000條 //默認參數值是1000條變量HISTSIZE/etc/profile中修改 //在其中可編輯HISTSIZE參數HISTTIMEFORMAT"…

使用GCC生成無格式二進制文件(plain binary files)

使用C語言生成一個二進制文件 使用自己喜歡的文本編輯器寫一個test.c&#xff1a; int main() { } 再使用如下命令編譯&#xff1a; gcc –c test.c ld –o test –Ttext 0x0 –e main test.o objcopy –R .note –R .comment –S –O binary test test.bin 最后生成的二進…

TensorFlow 實例一:線性回歸模型

代碼 # -- encoding:utf-8 -- """ Create by ibf on 2018/5/6 """import numpy as np import tensorflow as tf# 1. 構造一個數據 np.random.seed(28) N 100 x np.linspace(0, 6, N) np.random.normal(loc0.0, scale2, sizeN) y 14 * x - …

python后端數據發送到前端_Python Django 前后端數據交互 之 后端向前端發送數據...

Django 從后臺往前臺傳遞數據時有多種方法可以實現。最簡單的后臺是這樣的&#xff1a;from django.shortcuts import renderdefmain_page(request):return render(request, ‘index.html‘)這個就是返回index.html的內容&#xff0c;但是如果要帶一些數據一起傳給前臺的話&…

Dapper的基本使用

Dapper是.NET下一個micro的ORM&#xff0c;它和Entity Framework或Nhibnate不同&#xff0c;屬于輕量級的&#xff0c;并且是半自動的。也就是說實體類都要自己寫。它沒有復雜的配置文件&#xff0c;一個單文件就可以了。給出官方地址。 http://code.google.com/p/dapper-dot-n…

函數名作為參數傳遞

假如不知道signal的函數原型&#xff0c;考慮child_handler函數的參數從哪里來&#xff1f; void child_handler(int sig) { if (sig SIGINT) kill(pid_parent, SIGUSR1); } int main(void) { ...... signal(SIGINT, child_handler); ...... } 1、…

易語言神經網絡驗證碼識別_遞歸神經網絡 GRU+CTC+CNN 教會驗證碼識別

利用 NLP 技術做簡單數據可視化分析Chat 簡介&#xff1a;用遞歸神經網絡采用端到端識別圖片文字&#xff0c;遞歸神經網絡大家最早用 RNN &#xff0c;缺陷造成梯度消失問題&#xff1b;然后采用了 LSTM&#xff0c;解決 RNN 問題&#xff0c;并且大大提高準確率&#xff1b;現…

GCC 生成的符號表調試信息剖析

GCC把C語言源文件&#xff08;&#xff07;.c&#xff07;&#xff09;編譯成匯編語言文件&#xff08;&#xff07;.s&#xff07;&#xff09;&#xff0c;匯編器把匯編語言文件翻譯成目標文件&#xff08;&#xff07;.o&#xff07;&#xff09;&#xff0c;最后由鏈接器鏈…

《操作系統》OS學習(一):OS相關

清華大學操作系統OS&#xff08;向勇、陳渝&#xff09;視頻地址&#xff1a;http://www.xuetangx.com/courses/course-v1:TsinghuaX30240243Xsp/about 在ucore實驗中&#xff0c;一些基本的常用工具如下&#xff1a; 命令行shell: bash shell -- 有對文件和目錄操作的各種命令…

Android4.0藍牙使能的詳細解析

毫無疑問&#xff0c;bluetooth的打開是在Settings中進行的操作。因此&#xff0c;冤有頭&#xff0c;債有主&#xff0c;我們來到了Settings.java中&#xff0c;果然發現了相關的代碼如下&#xff1a; mBluetoothEnabler new BluetoothEnabler(context, new Switch(context));…

第一次沖刺

本人小組分工角色&#xff1a;產品負責人 本組沖刺訂單介紹&#xff1a;經過小組的成員討論&#xff0c;我們大概確立了一個沖刺的訂單是完成一個簡易的長沙學院網站項目。 最后完成情況概述&#xff1a;經過大約兩周的努力&#xff0c;我們組的編程人員運用python構建了一個簡…

移動端導出excel_連載系列【4】Excel開發移動端quot;APPquot;

前三篇文章介紹了百度地圖生成器、源代碼編輯器、GPS經緯度批量轉換工具、源代碼編輯器中添加自定義功能按鈕和地圖控件。這些寫好的Java Script代碼雖然可以實現所有期望的結果&#xff0c;但畢竟不是一個HTML文件&#xff0c;不便于傳播和使用&#xff0c;更無法變成一個類似…

《操作系統》OS學習(二):啟動、中斷、異常

Bootloader:加載OS。操作系統一開始是放在DISK&#xff08;硬盤&#xff09;中&#xff0c;并不是放在內存中。 BIOS&#xff1a;基本I/O處理系統。存放在ROMRead-Only Memory&#xff09;只讀存儲中 BIOS&#xff08;Basic Input/Output System&#xff09;基本輸入輸出系統。…

[GCC for C]編譯選項---IDE掩蓋下的天空

編譯選項 ---------IDE掩蓋下的天空 /*************************************** * gcc for c language ***************************************/ Single Source to Executable $ gcc helloworld.c [-o howdy] 默認生成的名字a.exe ______________________________________ …