第五周测试

---恢复内容开始---

一 视频知识
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.mzph.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 ______________________________________ …