第五周课堂笔记1th】的更多相关文章

可迭代对象   Isinstance  判断一个对象是否属于某种类型 接受两个参数 迭代器 以下数据类型都没迭代器: 把没有迭代器的类型更改为有迭代器类型 用迭代器进行取值: 判断迭代器的方法: 3.转义字符 用转义序列代表特殊字符 字符串字面值中用字符反斜杠 \ 后跟一些字符代表特殊的一个字符 转义字符表: \’ 代表一个单引号 \” 代表一个双引号 \n 代表一个换行符 \ 代表一个反斜杠 \r 返回光标至行首(从行首开始覆盖) \t 水平制表符 \f 换页 \v 垂直制表符 \b 倒退(倒…
1.      计算机基本组成 CPU:中央处理器,人的大脑 内存:临时存储数据       (特点:断电即消失,容量小12G 24G) 硬盘:永久存储数据(特点:断电不消失容量大,500G 1T) 操作系统:硬件与软件交互的计算机程序 文件输入文字…等时东西在内存,保存后到硬盘,pycharm中先到内存,然后自己保存到硬盘, 2.      Python特点:简单.优美.面向对象.丰富的库.解释性语言.可扩展.免费开源.跨平台. 3.      作者龟叔(Guido van Rossum) 1…
1.    三元运算 + 2.      for循环 for为有限循环,while为无限循环 可迭代对象:是字符串,数字不可以 数字不可以迭代但是可以用range函数 for i in range(100) for I in range (0,100): for I in range(0,100,1) 上述三种写法相同,默认不写开始,从0开始,步长默认为1 也支持负数取值 一般数字默认是从0开始可以吧range后参数设为(1,10)就从1开始 若range(2,11,2)第二个二是在第一个开始数…
<Linux内核分析>第五周学习笔记 扒开系统调用的三层皮(下) 郭垚 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.给MenuOS增加time和time-asm命令 1. 通过内核的方式(跟踪调试系统调用)来理解并使用系统调用. rm menu -rf //强制删除当前menu git clone http://github.com/mengning/menu.git…
第五周学习笔记 ch7 内部类(&外嵌类) 内部类的类体不可以声明类变量和方法 内部类如同类的变量或方法 内部类和外嵌类在编译时生成两个class文件 匿名类 某个类的一个子类没有明显的用类声明来定义(实现某接口的一个类也可称作匿名类) 异常类 try(可能出现异常)~catch(发生异常之后的处理)语句处理异常 使用throw关键字抛出异常对象,导致方法结束执行 自定义异常:扩展Exeption类 断言(调试代码) 关键字assert,运行时使用-ea命令 代码托管…
<Linux内核设计与实现>第五周读书笔记——第十一章 20135301张忻 估算学习时间:共2.5小时 读书:2.0 代码:0 作业:0 博客:0.5 实际学习时间:共3.0小时 读书:2.0 代码:0 作业:0 博客:1.0 耗时估计的公式:Y=X+X/N ,Y=X-X/N 第18章 调试295 调试工作艰难是内核级开发区别于用户级开发的一个显著特点,相比于用户级开发,内核调试的难度确实要艰苦得多.更可怕的是,它带来的风险比用户级别更高,内核的一个错误往往立刻就能让系统崩溃. 驾驭内核调试…
linux内核分析第五周学习笔记 标签(空格分隔): 20135328陈都 陈都 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.给MenuOS增加time和time-asm命令 把menu删除: rm menu -rf 强制删除 重新克隆一个新的Menu: 进入Menu,用makerootfs自动编译生成根文件系统,同时还自动启动MenuOS 增加了两个命令:time和time_a…
第五周课堂测试 1.下列关于内部类的说法,正确的是(ABD) A .其他类不可以用某个类的内部类声明对象. B .内部类字节码文件的名字格式是"外嵌类名$内部类名". C .内部类的类体可以声明类变量和类方法. D .内部类在成员位置上,因此可以被private修饰. 2.外部类访问内部类,必须建立内部类对象.(A) A .true B .false 3.下面的类无法通过编译,第三行出现错误提示,因为类不可以被static修饰.(B) class Outer{ int x = 3; s…
第五周 扒开系统调用的“三层皮”(下) 一.知识点总结 (一)给MenuOS增加time和time-asm命令 在实验楼中,首先 强制删除menu (rm menu -rf) 重新克隆一个新版本的menu(git clone https://github.com/mengning/menu.git 进入menu之后,输入make rootfs,就可以自动编译,自动生成根文件系统 输入help,可以发现系统支持更多的命令:help version quit time(显示系统时间) time-as…
赵瀚青原创作品转载请注明出处<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 概述 按照刘老师的周从三个角度讲述这个星期的学习内容.第一个角度知道自己在干什么,这周主要内容就是在menu菜单中添加两个自己的功能,也就是上周我们编辑的两个函数,如何实现就是在test.c也就是make中编译的文件中添加两个函数,然后就进行编译,实现了功能,然后进行gdb调试,可以看出这个代码的变化情况.第二个角度,为什么做这个,知道…
第3章 进程管理 20135307张嘉琪 3.1 进程 进程就是处于执行期的程序(目标码存放在某种存储介质上),但进程并不仅仅局限于一段可执行程序代码.通常进程还要包含其他资源,像打开的文件,挂起的信号,内核内部数据,处理器状态,一个或多个具有内存映射的内存地址空间及一个或多个执行线程.当然还包括用来存放全局变量的数据段等,实际上,进程就是正在执行的程序代码的实时结果,内核需要有效而又透明地管理所有细节. 执行线程,简称线程,是在进程中活动的对象,每个线程都拥有一个独立的程序计数器.进程栈和一组…
第18章 调试 内核调试的难度大于用户级 一.准备开始 开始之前需要的是: 一个行为可靠且定义明确的bug 一个隐匿bug的内核版本 相关内核代码的知识和运气 想要成功的调试,取决于能不能将这些bug重现. 二.内核中的bug 产生:错误代码,同步错误,错误的管理硬件 症状:降低所有程序的运行性能,毁坏数据,系统死锁 三.通过打印来调试 1.健壮性 printk()函数在任何时候任何地方都能调用 2.日志等级 printfk()和printf()相比,可以指定一个日志级别,内核根据这个级别判断是…
读了第一个同学的自述,我印象最深的就是一些高分同学,只是机械性地背诵知识点,然后不停刷题,只是为了拿一个高分,然而他们对学科的一些基本概念都没有掌握牢靠.高分,并不代表学的就好.学得好不仅仅要牢靠掌握大学课本中的知识,更要深入实践,对该方面比较重要的技术思想,概念名词,技术要点也要有很好的把握.还有就是我在写程序的时候,心理跟作者很像,自己开始写代码的时候信心满满,但是写着写着发现自己的代码有打不完的补丁,层出不穷的bug,臃肿杂乱的代码,导致自己对于继续开发和维护丧失了信心,最后搁浅失败.原因…
上课笔记2th https://mubu.com/doc/2gxvIvVLG0(老师笔记网址) 1.     python python运行过程 把源代码转化成字节码(机器不能识别) 也可能不产生pyc,只是字节码 把转化好的字节码转发到Python虚拟机(PVM)中执行 2.     编译型,c  c++ 一次性把你的代码编译成机器能够识别的二进制码,速度快,跨平台性不好 3.     解释型,python   (不是纯粹的解释,也有一个编译过程,pyc文件机器不能识别,还需要虚拟机去逐条解释…
1.Introduction 1.1 Example        - Database mining        Large datasets from growth of automation/web.        E.g., Web click data, medical records, biology, engineering        - Applications can't program by hand.        E.g., Atonomous helicopter…
第18章 调试 20135307张嘉琪 18.1 准备开始 18.2 内核中的bug 内核中的bug多种多样,它们的产生可以有无数的原因,同时它们的表象也变化多端,从明白无误的错误代码(比如,没有把正确的值存放在恰当的位置)到同步时发生的错误(比如共享变量锁定不当)再到错误地管理硬件(比如,给错误的控制寄存器发送错误的指令).从降低所有程序的运行性能到毁坏数据再到使得系统处于死锁状态,都可能是bug发作时的症状. 18.3 通过打印来调试 18.3.1 健壮性 健壮性是printk()函数最容易…
算数运算符 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <script> //算数运算符:+,-,*,/,%,++,-- // 数和数的运算 var nnu1 = 5; var nnu2 = 2; // co…
#斐波那契 def fid(n): res = [] indx = 0 a = 0 b = 1 while indx < n : res.append(b) a,b = b,a+b indx += 1 return res print(fid(1000)) # 生成器 def fid(n): indx = 0 a = 0 b = 1 while indx < n : yield b # 暂停并返回 跳出函数 res.append(b) a,b = b,a+b indx += 1 f = fid…
一 用 python 操作 mysql 1,导入 pymysql 2,检查配置文件, 3,端口转发 如果 python 在本机,数据库在远程,或虚拟机则需要 4用 python 连接 # -*- coding: utf-8 -*- # 斌彬电脑 # @Time : 2018/7/5 import pymysql conn = pymysql.connect( host ='127.0.0.1', # 远程 ip port = 3306, # mysql 端口 user = 'binbin', #…
第十八章 调试 18.1准备开始 需要的只是: 一个确定的bug.大部分bug通常都不是行为可靠而且定义明确的. 一个藏匿bug的内核版本. 相关的内核代码的知识和运气. 18.2内核中的bug 内核中的bug多种多样,它们的产生可以有无数的原因,同时他们的表象也变化多端. 从隐藏在源代码中的错误到展现在目击者面前的bug,往往都是经历一系列连锁反应的事件才可能触发. 内核与其他大型的软件项目没有什么太大的不同. 内核有一些独特的问题需要考虑:例如定时限制和竞争条件等,它们都是允许多个线程在内核…
视频内容知识学习 一.用户态.内核态和中断 1.内核态:处于高的执行级别下,代码可以执行特权指令,访问任意的物理地址,这时的CPU就对应内核态 2.用户态:处于低的执行级别下,代码只能在级别允许的特定范围内活动.在日常操作下,执行系统调用的方式是通过库函数,库函数封装系统调用,为用户提供接口以便直接使用. 3.Intel x86 CPU有四种不同的执行级别0-3,Linux只使用了其中的0 3级分别表示内核态和用户态.cs寄存器的最低两位表明了当前代码的特权级,00或者11. 4.内核态cs:e…
函数   关键字def   函数名加括号  是调用函数   Return   相当于给函数算完之后给予另一个返回值   返回的是元组 如果return后没写返回none Return在函数中可以结束整个函数的运行后边的代码不在运行   函数的参数     6.实参   函数执行的时候 位置参数,a与i对应 b与j对应 要一一对应 关键字参数: 一个变量对应一个值 变量要保持一致 混合参数: 有位置参数和关键字参数 关键字参数必须在位置参数的前面 形参     函数定义的时候 默认参数 如果一个变…
循环打印 #计算字典中的键值对的个数 print(len(a)) #获取字典中键的列表 print(a.keys()) #获取字典中值的列表 print(a.values()) #获取字典中键值对的个数 print(a.items()) #遍历字典中的键key for i in  a.keys(): print(i) #遍历字典中的值value for i in a.values(): print(i) #遍历字典中的元素 for i in a.items(): print(i) #遍历字典中的…
元组   元组是以逗号隔开的 元组有索引有切片,元组是小括号和中括号的集合, 元组中的东西不可修改(小括号内的东西不可被修改,但是小括号里的列表和字典可以被修改)   2. 由内存地址来分 可变数据类型:list, dict ,set 不可变数据类型:str ,int ,bool, tuple 容器类型: list ,str ,tuple , dict , set 有没有排列顺序,索引来分 有序:list , str ,tuple , 无序:dict , set 字典    dict      …
---恢复内容开始--- 1.      list列表      可变数据类型 创建列表的方法: A=[“a”,”sda”,”2131”]   直接创建  常用的方法 B=list(“ads”)     Str,list 序列,有顺序,支持索引,切片     2.      列表里的增 append把某个字符串或字符添加到列表后边   Insert  插入,第一个参数是插入的索引位置,第二个参数是要添加的字符串或字符   extend  迭代着追加元素  添加的对象要是可迭代对象     列表里…
---恢复内容开始--- 1. 2.索引取单个值 取多个值叫切片, 切片:取多个值 从左到右取值: 原则:顾头不顾尾 1, a[0:3] abc 2, a[-5:-2] abc 3, a[0:-2] abc 从右到左取值: 原则:顾头不顾尾 1, a[2::-1] cba 2, a[-3::-1] cba 3, a[2:-6:-1] cba a[2:-5:-1] cb   切片规律:顾头不顾尾 若取得第二位值为最后一位用空 若从头到尾可以直接打冒号 若是为负数取切片,还是正向取值 若取值为反向取…
1.      While循环机制 如何终止循环? 改变条件(根据上面的流程,只要改变条件,就会终止循环). 关键字:break. 调用系统命令:quit(),exit() 后面会讲到,不建议大家使用. 关键字:continue(终止本次循环). 例: 也可以用大于小于号 例:      …
1.    if 对应着程序设计中的三种程序执行流程: 顺序结构,一条一条的按顺序执行,自上而下 选择结构,if  else 单分支,双分支,多分支 循环结构 while for (后面学) 流程控制之--if 条件 1,单分支 2,双分支 3,多分支: 注意: if 可以 单独使用 elif # else if 缩写 不能单独存在,有if才能用 代码:…