摘要: 一. 简单总结Linux系统模型的一些先验知识 1. Linux进程调度 1.1 进程控制块 Linux中进程/线程作为可被运行调度的实体都用task_struct来表示,所拥有的所有资源和信息都被记录在该结构体内,包括pid、运行状态、内核栈、内存资源、打开文件资源、接收到的信号等。mm_stru 阅读全文
posted @ 2020-07-09 22:40 demonatic 阅读(1174) 评论(0) 推荐(0) 编辑
摘要: 1.进程上下文与中断上下文 进程上下文指一个进程在执行的时候,cpu中的所有寄存器值(通用寄存器、eflags、esp、eip等)、堆栈段代码段数据段、内核栈以及task_struct里的一堆信息(进程状态、mm_struct、files_struct等)。Linux使用schedule()进行进程 阅读全文
posted @ 2020-06-10 19:27 demonatic 阅读(493) 评论(0) 推荐(0) 编辑
摘要: 一、实验要求 找一个系统调用,系统调用号为学号最后2位相同的系统调用; 通过汇编指令触发该系统调用; 通过gdb跟踪该系统调用的内核处理过程; 重点阅读分析系统调用入口的保存现场、恢复现场和系统调用返回,以及重点关注系统调用过程中内核堆栈状态的变化。 二、环境准备 1. 下载Linux内核源码并配置 阅读全文
posted @ 2020-05-26 01:22 demonatic 阅读(959) 评论(0) 推荐(0) 编辑
摘要: 一、实验要求 按照https://github.com/mengning/mykernel 的说明配置mykernel 2.0,熟悉Linux内核的编译; 基于mykernel 2.0编写一个操作系统内核,参照https://github.com/mengning/mykernel提供的范例代码; 阅读全文
posted @ 2020-05-12 12:00 demonatic 阅读(650) 评论(0) 推荐(0) 编辑
摘要: 1.您认为一个软件工程师的软件工程知识技能水平高低主要体现在哪些方面,请您简要总结一下? 1. 具有扎实的计算机基础知识,如数据结构与算法、操作系统、计算机组成原理等基础知识的熟练掌握。 2. 对设计模式的掌握,有助于更好地构建大型软件。 3. 拥有良好的代码风格,遵守编码规范。 4. 对软件开发过 阅读全文
posted @ 2020-01-05 23:05 demonatic 阅读(299) 评论(0) 推荐(0) 编辑
摘要: 1.如何对需求不确定的创新产品进行分析和设计 需求分析指的是在创建一个新的或改变一个现存的系统或产品时,确定新系统的目的、范围、定义和功能时所要做的所有工作。需求分析是软件工程中的一个关键过程。在这个过程中,系统分析员和软件工程师确定顾客的需要。只有在确定了这些需要后他们才能够分析和寻求新系统的解决 阅读全文
posted @ 2019-12-15 10:44 demonatic 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 软件设计模式(Design pattern),又称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。 本文主要介绍设计模式中的策略模式,将对其目的、结构进行分析,包括各个模块的内聚度和模块 阅读全文
posted @ 2019-12-08 20:05 demonatic 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 我的工程实践业务是设计和实现一个搜索引擎,并在此基础上搭建一个食谱查询服务。 1)找出业务中用到的类 食谱、食材、食材处理步骤、食谱爬虫、请求分发处理器、分词器、相似度衡量器(计算词向量相似度)、食谱Queryer、Web服务请求者、用户、系统管理员 2)建立类和类之间的联系 类与类之间的关系通常包 阅读全文
posted @ 2019-11-24 13:27 demonatic 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 我的工程实践课题为“食谱搜索引擎”。目标为通过爬取互联网上的各类食谱信息,处理后存入数据库,以Web页面形式提供给用户查询想要的食谱。 1、抽取Abstract use case 基于Web Application的管理和访问两个角度,可划分为网站管理人员Administrator和用户User 2 阅读全文
posted @ 2019-11-03 09:23 demonatic 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 我的工程实践主要任务为实现一个搜索引擎,因此我在github上找到了一个与我主题契合的C++搜索引擎开源项目-TypeSense做分析。 1. 源代码目录结构 该工程整体目录结构比较清晰,从上到下内容依次为: .circleci:持续集成工具的配置文件 assets:主要为软件Logo cmake: 阅读全文
posted @ 2019-10-07 13:40 demonatic 阅读(305) 评论(0) 推荐(0) 编辑