Android第五六周作业】的更多相关文章

1.返回键实现对话框弹出是否退出应用程序 package com.example.zuoye1; import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatActivity; import android.annotation.SuppressLint; import android.content.DialogInterface; import android.os.Bundle; pub…
2018-2019-1 20189221 <Linux内核原理与分析>第六周作业 实验五 实验过程 将Fork函数移植到Linux的MenuOS fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程.在fork函数执行完毕后,如果创建新进程成功,则出现两个进程,一个是子进程,一个是父进程.在子进程中,fork函数返回0,在父进程中,fork返回新创建子进程的进程ID.通过fork返回的值来判断当前进程是子进程还是父进程. 启动MenuOS: 在test.c中添加代码如下: int…
项目 内容 课程班级博客链接 19信计班 这个作业要求链接 第六周作业链接 java面向对象的概念和定义 博客名称 学号-姓名-Java第六周作业-题目自拟 要求 每道题要有题目,代码(使用插入代码,不会插入代码的自己查资料解决,不要直接截图代码!!),截图(只截运行结果). 题目1: 设有一个Phone类,其属性包含品牌(brand)和价格(price),其方法有群发短信(sendMessage)(无参)和给某人打电话(call)(有参,传入某人的姓名).要求在TestPhone类中新建一个P…
201621123080<java程序设计>第六周作业总结 1. 本周学习总结 2. 书面作业 clone方法 1.1 在test1包中编写Employee类,在test2包中新建一个Test类,并在其main中新建test1包中的Employee的对象,然后使用clone方法克隆一个新对象,能否成功?为什么? 不能成功,protected修饰的只能被子类或同包访问. 1.2 如果要为自定义的类覆盖clone方法,需注意什么? 类声明Cloneable接口后,再用public修饰覆盖clone…
<Linux内核原理与分析>第六周作业 一.本周内容概述: 学习系统调用的相关理论知识,并使用库函数API和C代码中嵌入汇编代码两种方式使用getpid()系统调用 学习系统调用system_call的处理过程,在MenuOS中运行getpid命令,通过gdb跟踪调用time函数的过程 分析system_call代码对应的工作过程 二.本周学习内容: 1.实验楼环境研究MenuOS 1.1 在MenuOS中添加并运行getpid命令 进入LinuxKernel目录,删除menu目录,然后从gi…
这个作业属于哪个课程 <2020-2021-1Linux内核原理与分析)> 这个作业要求在哪里 <2020-2021-1Linux内核原理与分析第六周作业> 这个作业的目标 <使用gdb跟踪分析一个系统调用内核函数,分析system_call对应的汇编代码工作过程> 作业正文 https://www.cnblogs.com/wzyxiaowang/p/13977300.html 一.给MenuOS添加命令 1.删除之前的menu目录,下载新版本目录 -rm -rf me…
作业链接:https://edu.cnblogs.com/campus/hljkj/CS2017-5/homework/1250 一.评分要求 要求1 完成PTA第六周所有题,若存在抄袭现象,倒扣此题所有分数(20分). 要求2 4道题,每道题对应15分(总计60分). (1)实验代码(1分). (2)设计思路:算法描述(2分),流程图(5分). (3)调试过程中遇到的问题及解决办法(4分). (4)本题PTA提交列表(3分). 要求3 (1)git地址(3分). (2)git项目截图(2分).…
项目   内容 课程班级博客链接  19信计班(本) 作业要求链接 第6周作业 扩展阅读 java面向对象的概念和定义 作业要求 每道题要有题目,代码,截图(只截运行结果). 题目1: 一个Phone类,其属性包含品牌(brand)和价格(price),其方法有群发短信(sendMessage)(无参)和给某人打电话(call)(有参,传入某人的姓名).要求在TestPhone类中新建一个Phone对象并定义其品牌和价格(自定义),并调用成员方法实现功能. 运行结果截图: 项目结构截图: 代码:…
1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图或相关笔记,对面向对象思想进行一个总结. 注1:关键词与内容不求多,但概念之间的联系要清晰,内容覆盖面向对象的核心内容即可. 注2:颜色要少.连线不要复杂,必要的时候要在连线上进行说明. 思维导图: 1.2可选:使用常规方法总结其他上课内容. 1.匿名内部类的具体用法 2.Clone方法的使用,以及注意点(如将该方法声明为public,一定要实现Cloneable接口) 3.Lambda…
这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 在这里 我在这个课程的目标是 能够熟练掌握指针的用法 这个作业在那个具体方面帮助我实现目标 对指针的使用更加得心应手 参考文献与网址 C语言程序设计II(第三版) 菜鸟教程中关于指针的教学 编程题一 6-1 求两数平方根之和 (10 分) 函数fun的功能是:求两数平方根之和,作为函数值返回.例如:输入12和20,输出结果是:y = 7.936238. 函数接口定义: double fun (double *a, double *b)…
一.高速公路超速罚款 1.代码 #include<stdio.h> int main() { int a,b; float c; scanf("%d %d",&a,&b); c=(float)(a-b)*100/b; if(c<10) printf("OK"); if(c>=10&c<50) printf("Exceed %.0f%%. Ticket 200",c); if(c>=50)…
实现功能: 1.非编辑模式 ​ 可以对每行进行选择,全选,取消,反选 : 2.编辑模式 ​ 进入编辑模式时: 如果行被选中,则被选中的行变为可编辑状态,未选中则不改变 ​ 退出编辑模式时: 保存所有的行的修改并进入非编辑状态 ​ 单个勾选: 勾上时: 进入编辑状态 去勾时: 保存所在行的修改进入非编辑状态 ​ 全选时: 所有行进入编辑状态 取消是: 所有行保存修改进入非编辑状态 反选时: 被选中的行 取消勾选 保存修改进入非编辑状态 未被选中的行 进行勾选 进入编辑状态 批量上下线: 按住CTR…
这周的作业同样分为两部分,第一部分的学习MOOC第四节[扒开系统调用的三层皮],并结合实验楼的实验四深入学习.第二部分阅读学习教材「Linux内核设计与实现 (Linux Kernel Development)」第教材第7,8章. 首先从第一部分开始,系统调用的三层皮分别是xyz(API) system_call(中断向量对应的中断服务程序) sys_xyz(服务程序).为了更深入的了解三层"皮",我们做了如下的实验. 1.获取系统时间 2.代码完成后我们进行编译并运行 3.C语言代码…
作业06-接口.内部类 1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图或相关笔记,对面向对象思想进行一个总结. 2. 书面作业 1. clone方法 1.1 在test1包中编写Employee类,在test2包中新建一个Test类,并在其main中新建test1包中的Employee的对象,然后使用clone方法克隆一个新对象,能否成功?为什么? 不能成功:clone被修饰为protected,所以只限类本身和子类访问,不能跨包访…
视频学习 一.用户态.内核态和中断 内核态:处于高的执行级别下,代码可以执行特权指令,访问任意的物理地址,这时的CPU就对应内核态 用户态:处于低的执行级别下,代码只能在级别允许的特定范围内活动.在日常操作下,执行系统调用的方式是通过库函数,库函数封装系统调用,为用户提供接口以便直接使用. Intel x86 CPU有四种不同的执行级别0-3,Linux只使用了其中的0 3级分别表示内核态和用户态.cs寄存器的最低两位表明了当前代码的特权级,00或者11. 内核态cs:eip的值是任意的,即可以…
这次博客分为两部分,第一部分是实验,第二部分是教材. 第一部分:实验 这周实验的内容是使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用,教学案例给的是time()获取系统时间的函数,我用的是getpid()获取当前进程的pid的函数.前20个系统调用号如下图所示 我选择的是20号getpid(),获取的是当前进程的pid. 开始时Code中是没有函数的,我们来新建一个 创建好了之后我们首先使用库函数API来使用系统调用,代码如下. 其中sys/types.h是基本系统数据类型,是…
题目 题目一:高速公路超速处罚 1.实验代码 #include <stdio.h> int main() { int speed,maxspeed; double x; scanf("%d %d",&speed,&maxspeed); x=(; ) printf("OK"); ) printf("Exceed %.0f%%. License Revoked",x); else printf("Exceed %…
希望是美好的 但仅仅是所想 一.书本第五章知识总结[系统调用的三层机制(下)] 深入理解系统调用的过程 system_call并不是一个普通的函数,只是一段汇编代码的起点,且内部没有严格遵守函数调用堆栈机制. 通过set_system_trap_gate函数绑定了中断向量0x80和system_call中断服务程序入口之后,一旦执行 0x80,CPU就直接跳转到system_call这个位置来执行.即系统调用的工作机制在start_kernel里初始化之后, CPU一旦执行到int 0x80指令…
1. PSP 日期 类别 工作 开始时间 中断时间 结束时间 总时间 4.7 站立会议 "耐撕"团队站立会议 20:00   20:15 15   重构 重构"抢答器"项目代码 19:00 30 20:50 80 4.8 站立会议 "耐撕"团队站立会议 15:20   15:40 20   代码整合 整合新增的功能并测试 14:00 50 17:20 150 4.11 站立会议 "耐撕"团队站立会议 19:30   19:50…
课本:第五章 系统调用的三层机制(下) 中断向量0x80和system_call中断服务程序入口的关系 0x80对应着system_call中断服务程序入口,在start_kernel函数中调用了trap_init函数,trap_init函数中调用了set_system_trap_gate函数,其中有系统调用的中断向量0x80和system_call中断服务程序入口的函数指针,system_call被声明为一个函数,通过set_system_trap_gate函数绑定了中断向量0x80和syst…
linux内核分析学习笔记 --第五章 系统调用的三层机制 学习重点--深入理解系统调用的过程 给MenuOS添加命令 添加命令的方式较为简单,在LinuxKernel/menu/test.c目录下,打开test.c,main函数中的MenuConfig就是对应的系统调用的功能增加,之后在上面给出具体实现即可.之后就可以在MenuOS中使用该系统调用函数. 使用gdb跟踪内核函数sys_getuid 上面在MenuOS中添加了功能,我这里改成了getuid获得当前用户的id号,调试步骤和实验三基…
<庖丁解牛>第五章书本知识总结 system_call并不是一个普通的函数,只是一段汇编代码的起点,且内部没有严格遵守函数调用堆栈机制. 通过set_system_trap_gate函数绑定了中断向量0x80和system_call中断服务程序入口之后,一旦执行0x80,CPU就直接跳转到system_call这个位置来执行.即系统调用的工作机制在start_kernel里初始化之后,CPU一旦执行到int 0x80指令就会立即跳转到system_call的位置. 代码中的sys_call_t…
<Linux内核原理与设计> 视频学习及操作 给MenuOS增加time和time-asm命令的方法: 1.更新menu代码到最新版 rm menu -rf //强制删除menu, rm -rf 表示强制删除的意思. git clone 网址 //克隆一个新的menu,这样就使得menu的代码更新到最新版 2.在main()函数中增加MenuConfig 3.增加对应的Time函数和TimeAsm函数(这里的函数要换成我们自己编写的使用系统调用的函数,比如mkdir和mkdirAsm) 4.m…
攥写人:李鹏举 学号:20179203 ( 原创作品转载请注明出处) ( 学习课程:<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ) 一.实验五分析: 1.1 实验要求 1).使用gdb跟踪分析一个系统调用内核函数(您上周选择那一个系统调用),系统调用列表参见http://codelab.shiyanlou.com/xref/linux-3.18.6/arch/x86/syscalls/syscall_32.…
第五章 系统调用的三层机制(下) 1.往MenuOS中添加命令 (1)首先进入LinuxKernel文件夹,将menu目录删除.然后再git clone克隆下载更新了版本之后的menu目录(包含time和time-asm系统调用). cd LinuxKernel/ //进入LinuxKernel文件夹 rm -rf menu //将menu目录删除 git clone http://github.com/mengning/menu.git //克隆下载更新了版本之后的menu目录 (2)进入me…
系统调用的三层机制(下) (一)给MenuOS增加命令 (1)打开虚拟机,首先用rm -rf menu指令删除当前的menu目录,然后用git clone重新克隆一个新版本的menu,进入menu,运行make rootfs脚本结果报错 (2)经过与同学的讨论,我发现问题出在应该提前进入LinuxKernel目录,重新打开一个新的shell,按照新的流程走一遍,运行MenuOS系统,输入help命令后发现支持的命令增加了两个:time(显示系统时间)和time-asm(用汇编方式显示系统时间)…
第五章 系统调用的三层机制(下) 1.给MenuOS增加命令 代码如下: rm -rf menu git clone http://github.com/mengning/menu.git make rootfs 2.使用gdb跟踪系统调用内核sys_time 返回LinuxKernel的目录下启动内核 cd .. qemu -kernel linux3-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img -s -S 打开一个新的命令窗口,启动gdb,…
第五章 系统调用的三层机制(下) 1.给MenuOS增加命令 进入Linuxkernel目录下,强制删除当前menu目录,再重新克隆一个新版本的menu 进入menu,运行make roofts脚本就可以自动编译并且自动生成根文件系统,还可以运行MenuOS系统. 输入help命令可以发现,当前支持的命令比之前多了.增加了两个命令:time,功能是显示系统时间,还有一个是time_asm,功能是使用汇编的方式来显示时间. 下面来增加一个hello的命令,输出"hello 你的学号".…
<Linux内核分析> 第五章 系统调用的三层机制(下) 5.1 给MenuOS增加命令 强制删除当前menu目录,用get clone重新克隆一个新版本的menu,运行make rootfs脚本可以自动编译并生成根目录文件系统,还可以运行MenuOS系统: cd LinuxKernel rm -rf menu git clone https://github.com/mengning/menu.git cd menu make rootfs 输入help命令可以发现,当前支持的命令比之前多了…
本周学习了庖丁解牛Linux内核分析第五章:系统调用的三层机制(下),是上一章的延续 实验内容:使用gdb跟踪分析一个系统调用内核函数 上周实验我选择的getpid这个系统系统调用,这次准备使用gdb跟着系统调用内核函数sys_getpid 先更新一下menu文件夹 然后修改一下test.c,把上周写的两个关于getpid系统调用的函数加入,并在main里声明 然后进行编译 编译完成后,输入help,可以看到,menuos多了两个命令pid和pid-asm 接下来要开始跟踪系统调用函数sys_g…