自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

cs_assult的专栏

喜欢什么就写点什么。

原创 不吉利的日期

题目描述 在国外,每月的 13 号和每周的星期 5 都是不吉利的。特别是当 13 号那天恰好是星期 5时,更不吉利。 现在给你一个年份,请你从小到大依次输出当年所有13 号是星期 5 的月份。 输入描述: 输入包含多组数据,每组数据包含一个正整数year(2000≤year≤999...

2015-07-30 22:03:03 2032 0

原创 送外卖

题目描述 冬天到了,小伙伴们都懒得出去吃饭了,纷纷打电话叫起了外卖。送外卖的小哥想找出一条最短的路径,小区门口进来,送完外卖又回到小区门口。 整个小区是一个由m*n个边长为1的正方形组成的矩形,各幢公寓楼分布于正方型的顶点上,小区门口位于左上角。每幢楼与相邻的八个方向的楼之间都有道路。 下图...

2015-07-30 21:27:18 1101 0

原创 三角形

题目描述 给定三条边,请你判断一下能不能组成一个三角形。 输入描述: 输入包含多组数据,每组数据包含三个正整数a、b、c(1≤a, b, c≤10^100)。 输出描述: 对应每一组数据,如果它们能组成一个三角形,则输出“Yes”;否则,输出“No”。 ...

2015-07-22 19:21:03 499 0

原创 ucore操作系统lab8——实验报告

一、练习一: 完成读文件操作的实现 首先了解打开文件的处理流程,然后参考本实验后续的文件读写操作的过程分析,编写在sfs_inode.c中sfs_io_nolock读文件中数据的实现代码。 //LAB8:EXERCISE1 YOUR CODE HINT: call sfs_bmap_load_no...

2015-07-15 00:10:09 3915 0

原创 ucore操作系统lab7——实验报告

注:lab7不需要修改之前的代码,直接合并到lab7即可。 一、练习一: 理解内核级信号量的实现和基于内核级信号量的哲学家就餐问题 分析了解lab7采用信号量的执行过程。请在实验报告中给出内核级信号量的设计描述,并说其大致执行流流程。 给出给用户态进程/线程提供信号量机制的设计方案,并比...

2015-07-12 20:09:10 3365 0

原创 分解因数

题目描述 所谓因子分解,就是把给定的正整数a,分解成若干个素数的乘积,即 a = a1 × a2 × a3 × ... × an,并且 1 先给出一个整数a,请输出分解后的因子。 输入描述: 输入包含多组数据,每组数据包含一个正整数a(2≤a≤1000000)。 ...

2015-07-11 19:28:34 1004 0

原创 ucore操作系统lab6 —— 调度算法

一、练习零:填写已有实验 本实验依赖实验1/2/3/4/5。请把你做的实验2/3/4/5的代码填入本实验中代码中有“LAB1”/“LAB2”/“LAB3”/“LAB4”“LAB5”的注释相应部分。并确保编译通过。注意:为了能够正确执行lab6的测试应用程序,可能需对已完成的实验1/2/3/4/5的...

2015-07-04 22:51:03 5234 0

原创 ucore操作系统lab6(理论部分)

一、实验流程 1、进程的正常生命周期如下: 进程首先在 cpu 初始化或者 sys_fork 的时候被创建,当为该进程分配了一个进程控制块之后,该进程进入 uninit态(在proc.c 中 alloc_proc)。 当进程完全完成初始化之后,该进程转为runnable态。 当到达调度点时,由...

2015-07-03 23:30:02 1723 0

原创 ucore操作系统lab5 ——用户进程管理

练习1: 加载应用程序并执行 do_execv函数调用load_icode(位于kern/process/proc.c中)来加载并解析一个处于内存中的ELF执行文件格式的应用程序,建立相应的用户内存空间来放置应用程序的代码段、数据段等,且要设置好proc_struct结构中的成员变量trapfr...

2015-06-29 23:38:56 2607 1

原创 采花生

题目描述 鲁宾逊先生有一只宠物猴,名叫多多。这天,他们两个正沿着乡间小路散步,突然发现路边的告示牌上贴着一张小小的纸条:“欢迎免费品尝我种的花生!——熊字”。 鲁宾逊先生和多多都很开心,因为花生正是他们的最爱。在告示牌背后,路边真的有一块花生田,花生植株整齐地排列成矩形网格。有经验的多...

2015-06-29 19:08:05 1196 0

原创 ucore操作系统lab5 -- 用户进程管理(理论部分)

一、实验流程 在内存管理部分,lab5与lab4最大的区别就是增加用户态虚拟内存的管理。为了管理用户态的虚拟内存,需要对页表的内容进行扩展,能够把部分物理内存映射为用户态虚拟内存。如果某进程执行过程中,CPU在用户态下执行(在CS段寄存器最低两位包含有一个2位的优先级域,如果为0,表示CPU运行...

2015-06-28 21:12:37 2151 1

原创 ucore操作系统实验lab4 -- 内核线程管理

练习一:分配并初始化一个进程控制块(需要编码)   alloc_proc函数(位于kern/process/proc.c中)负责分配并返回一个新的struct proc_struct结构,用于存储新建立的内核线程的管理信息。ucore需要对这个结构进行最基本的初始化,完成这个初始化过程。   【提...

2015-06-27 23:04:05 2650 0

原创 ucore操作系统lab4实验报告(理论部分)

内核线程管理 一、关键数据结构 -- 进程控制块 1、首先简单说明一下内核线程与用户进程的区别: 内核线程只运行在内核态。用户进程会在在用户态和内核态交替运行所有内核线程共用ucore内核内存空间,不需为每个内核线程维护单独的内存空间,而用户进程需要维护各自的用户内存空间。 2、进程管理信息用...

2015-06-26 20:58:17 2296 0

原创 插入与归并(25)

题目描述 根据维基百科的定义:插入排序是迭代算法,逐一获得输入数据,逐步产生有序的输出序列。每步迭代中,算法从输入序列中取出一元素,将之插入有序序列中正确的位置。如此迭代直到全部元素有序。 归并排序进行如下迭代操作:首先将原始序列看成N个只包含1个元素的有序子序列,然后每次迭代归并两个...

2015-06-23 20:59:03 523 0

原创 有理数四则运算(20)

题目描述 本题要求编写程序,计算2个有理数的和、差、积、商。 输入描述: 输入在一行中按照“a1/b1 a2/b2”的格式给出两个分数形式的有理数,其中分子和分母全是整型范围内的整数,负号只可能出现在分子前,分母不为0。 输出描述: 分别在4行中按照“有理数1 运算符...

2015-06-22 21:11:58 406 0

原创 ucore-lab3 实验报告

练习一:给未被映射的地址映射上物理页   1、描述:   在lab2中我们实现并启动了分页机制,现在我们需要考虑什么情况下会产生页错误异常并触发中断。显答案是在指令或数据的虚拟地址所对应的物理页不在内存中,或者访问权限不够的情况下。其具体原因有以下三点:   ①页表项全为0——虚拟地址与物理地址未...

2015-06-19 22:26:03 3671 0

原创 查验身份证(15)

查验身份证(15) 题目描述 一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下:首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然后将计算的和对11取模得到值Z;最后按照以下关系对...

2015-06-19 20:05:05 430 0

原创 ucore Lab3操作系统设计(理论部分)

一、实验流程、关键数据结构和相关函数 1、实验流程 kern init()----->pmm_init()------>pic_init()  idt_init() ------>vmm_init()------>ide_init()------>swap_in...

2015-06-18 23:23:34 2352 0

原创 人口普查(20)

题目描述 某城镇进行人口普查,得到了全体居民的生日。现请你写个程序,找出镇上最年长和最年轻的人。这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知镇上没有超过200岁的老人,而今天是2014年9月6日,所以超过200岁的生日和未出生的生日都是不合理的,应该被过滤掉。 输入描...

2015-06-16 19:47:11 439 0

原创 ucore操作系统lab2实验报告

练习1:实现 first-fit 连续物理内存分配算法 在实现first fit 内存分配算法的回收函数时,要考虑地址连续的空闲块之间的合并操作。提示:在建立空闲页块链表时,需要按照空闲页块起始地址来排序,形成一个有序的链表。可能会修改default_pmm.c中的default_init,def...

2015-06-14 22:29:40 13417 1

原创 ucore操作系统lab2实验报告之理论部分

lab2-------物理内存管理 一、实验基本知识简介 1、x86特权级------段选择子 (1)、在保护模式下,特权级总共有 4 个,编号从 0(最高特权)到 3(最低特权)。三类主 要的资源,即内存、 I/O 地址空间以及特权指令需要保护。特权指令如果被用户态的程序所 使用,就会受到保护模...

2015-06-11 22:23:15 2256 0

原创 ucore-lab1实验报告

练习一: 1、操作系统镜像文件ucore.img是如何一步一步生成的?(需要比较详细地解释Makefile中每一条相关命令和命令参数的含义,以及说明命令导致的结果) + cc kern/init/init.c  //编译 init.c + cc kern/libs/readline.c //编译...

2015-06-02 23:25:43 5020 0

原创 ucore操作系统lab1实验准备知识

ucore实验环境简介: 虚拟环境:VirtualBox 操作环境:Utunbu 10.04 编译环境:gcc-4.6.x 实验目的: 操作系统是一个软件,也需要通过某种机制加载并运行它。在这里我们将通过另外一个更加简单的软件-bootloader来完成这些工作。为此,我们需要完成一个能够...

2015-05-28 22:09:24 2136 0

原创 栈的压入、弹出序列

输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。 例如: input: 1 2 3 4 5 4 5 3 2 1 output: true input: 1 2 3 4 5 4 3 5 1 2 output: false 代码如下...

2015-05-27 18:18:56 309 0

原创 linux内核学习总结

作者:吴乐  山东师范大学 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 题外话:   首先感谢网易云课堂的平台让我有机会学习计算机相关的慕课课程,还要感谢萌萌的孟老师对课程的付出,最后还要感谢一同学习的同...

2015-05-27 18:14:58 355 0

原创 通过gdb跟踪进程调度分析进程切换的过程

作者:吴乐 山东师范大学 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 本实验目的:通过gdb在linux下对一个简单的命令行命令实现进程的过程进行跟踪,分析一般用户进程实现进程切换的过程,并进一步剖析进程调...

2015-05-27 18:14:54 1322 0

原创 通过gdb跟踪Linux内核装载和启动可执行程序过程

作者:吴乐 山东师范大学 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 实验目的:通过对一个简单的可执行程序用gdb进行代码的跟踪,剖析linux内核是如何动态和静态装载和启动程序的,进而总结linux内核可...

2015-05-27 18:14:50 387 0

原创 通过fork函数创建进程的跟踪,分析linux内核进程的创建

作者:吴乐 山东师范大学 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一、实验过程 1.打开gdb,设置断点 2.跟踪到do_fork处 3.跟踪到copy_process断点处。 4....

2015-05-27 18:14:45 286 0

原创 通过实验分析system_call中断处理过程

作者:吴乐 山东师范大学 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 本实验目的:通过以一个简单的menu小程序,跟踪系统调用的过程,分析与总结系统调用的机制和三层进入的过程。 一、实验步骤 1.使用g...

2015-05-27 18:14:41 412 0

原创 通过库函数API和C代码中嵌入汇编代码剖析系统调用的工作机制

作者:吴乐 山东师范大学《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 本次实验的主要内容就是分别采用API和gcc嵌入汇编的方式调用system_call。系统调用其实就是操作系统提供的服务。我们平时编写的程序...

2015-05-27 18:14:37 395 0

原创 通过gdb调试分析Linux内核的启动过程

作者:吴乐 山东师范大学 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一、实验流程 1.打开环境 执行命令:cd LinuxKernel/ 执行命令:qemu -kernel linux-3.18.6...

2015-05-27 18:14:32 401 0

原创 通过简单的Linux内核启动程序代码窥探操作系统的启动原理

作者:吴乐  山东师范大学 《Linux内核分析》 孟宁 MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一、程序设计与分析 mymain.c编写如下,参考了孟宁老师的设计。 /* * linux/mykernel/m...

2015-05-27 18:14:28 489 0

原创 通过反汇编C语言小程序学习Liunx汇编语言

大家好!    我是来自山东师范大学的吴乐。    今天在《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 第一单元学习了一些基本的汇编语言    现在我分享一下我的学习历程,本次课程的目的是通过反汇编一段简单的小程...

2015-05-27 18:14:23 475 0

原创 顺时针打印矩阵

输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字 例如: input: 1   2   3   4 5   6   7   8  9   10 11 12 13 14 15 16  output: 1   2   3   4 8   12 16 15 14 13 9   5 6   7...

2015-05-25 18:14:05 281 0

原创 丹枫虽老犹多态 – 继承与多态

1.创建MyShape作为基类 2. 修改MyRectangle类从MyShape派生 3. 修改MyCircle类从MyShape派生 4. 增加createShape()函数根据输入信息创建对象 4. 在main函数中创建类的实例。(20分) 题目内容: 增加MyShape类: 将MyRect...

2015-05-06 21:54:49 419 0

原创 万类霜天竞自由 – 对象和类的更多内容

题目内容: 修改Screen类: 在Screen类中,将保存屏幕宽和高的数据域成员改为 static int 类型。 在Screen类中,添加两个 string 类型的数据成员 enter 和 leave,并在构造函数中将他们分别初始化为字符串“enter screen”和“leave scree...

2015-04-30 20:27:42 425 0

原创 物以类聚 – 对象和类

创建两个类,并在main函数中创建类的实例。 1. 创建Screen类 2. 创建MyRectangle类 3. 在main()中创建上述类的实例,并调用对象的函数 题目内容: Screen类: Screen类的构造函数能够接收屏幕的宽和高...

2015-04-23 19:43:34 777 0

原创 Reversing Linked List (25)

Given a constant K and a singly linked list L, you are supposed to reverse the links of every K elements on L. For example, given L being 1→2→3→4→5→6...

2015-04-22 23:00:57 238 0

原创 最大子列和问题(20)

给定K个整数组成的序列{ N1, N2, ..., NK },“连续子列”被定义为{ Ni, Ni+1, ..., Nj },其中 1 输入格式: 输入第1行给出正整数 K ( 输出格式: 在一行中输出最大子列和。如果序列中所有整数皆为负数,则输出0。 输入样例: ...

2015-04-22 22:55:36 311 0

提示
确定要删除当前文章?
取消 删除