摘要: 系统整理下数据结构的相关知识,利用思维导图的模式。第一次画总感觉怪怪的有几点不是很清楚的记录下这里研究二叉树的原因。因为多叉树如果采用兄弟链接法进行表示后,从某个角度上看来就是一颗二叉树。这也就是说研究二叉树也相当于研究多叉树。注意堆的建立过程,其中利用调节树方法建立的堆,首先先把一系列节点填入树种... 阅读全文
posted @ 2015-07-02 11:15 qtalker 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 1.进程进程的引入是因为为了满足多用户多任务的操作的需要,对于每个任务需要分别分配一个进程进行控制。对于每个进程很显然要标识它所拥有的资源。所以这里就引入了PCB(process control block)这个概念,对于每个PCB会有保存的各个资源变量。当你有了PCB的概念后,紧接着就是面临三个问... 阅读全文
posted @ 2015-06-16 22:54 qtalker 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 最近在学习编译原理,用图转移算法写了一个IF的词法分析器,本来觉得原理挺简单的,没想到还鼓弄了一天才弄出来,这里把写的代码放这里记录下通过myfile.txt输入。输入与输出如下输入:ifx if iif if 234iff if输出 第一代表行数,第二个代表开始地址代码如下, 1 #... 阅读全文
posted @ 2015-05-26 10:42 qtalker 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 1. 作业目录 这里从第二周才开始追课程,所以缺少第一周的 第二周 内核进程调度 第三周 内核调试 第四周 利用嵌入式汇编调用系统调用 第五周 system_call中断处理过程 第六周 linux内核进程的创建 第七周 linux加载和启动一个可执行程序 第八周 进程的切换和系统的一般执行过程 2 阅读全文
posted @ 2015-05-04 21:56 qtalker 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 1. 进程切换在内核中的实现 linux中进程切换是很常见的一个操作,而这个操作是在内核中实现的。这里我们来分析下内核中是如何实现这个操作的。 linux内核中的线程切换主要通过schedule()这个函数实现。实现的时机有以下三个时机 中断处理过程(包括时钟中断、I/O中断、系统调用和异常)中,直 阅读全文
posted @ 2015-04-26 22:18 qtalker 阅读(331) 评论(0) 推荐(0) 编辑
摘要: 1. 前言 这里主要分析linux系统如何加载和启动一个可执行程序。一个源文件要想形成可执行文件,需要经过编译和链接才可以。也就是说源文件先要通过编译器编译成目标文件,然后利用链接器链接成可运行文件。这样做有助于程序的模块化管理,其示意图如下程序经过编译后的目标文件由代码段以及数据段等段组成,然后链 阅读全文
posted @ 2015-04-19 17:38 qtalker 阅读(537) 评论(0) 推荐(0) 编辑
摘要: 1。FCFS调度(first come first serve):也就是先来先服务进程调度策略,没有切换进程的概念,自然也也就没有抢占的概念。类似于流水线的机制。2. Round Robin:时间片轮转,现在计算机大多是采用的这个策略进行进程切换。不利于不同大小进程的完成时间。3 SJF(Short... 阅读全文
posted @ 2015-04-17 15:45 qtalker 阅读(960) 评论(0) 推荐(0) 编辑
摘要: Given a string S, find the longest palindromic substring in S. You may assume that the maximum length of S is 1000, and there exists one unique longes... 阅读全文
posted @ 2015-04-13 16:07 qtalker 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 1.task_struct数据结构分析 对于linux而言,每个进程都有一个进程控制PCB(process control block)来保存每个进程的相关信息。其中task_struct则是PCB的具体的数据结构通过内核代码可以发现,内核当中定义一个task_struct的结构体用来保存进程的相关 阅读全文
posted @ 2015-04-12 16:42 qtalker 阅读(624) 评论(0) 推荐(0) 编辑
摘要: 1.实验 这里的实验主要是将上一周实现的那个系统中断中断程序加载到系统内核当中。这里将汇编版本以及C语言版本分别加载到系统当中,并且利用gdb对系统调用进行调试。同周三的实验方法。将上周实现的fork函数加载到test.c当中如下图所示,利用MenuConfig将Fork以及Fork_asm设置成命 阅读全文
posted @ 2015-04-05 16:34 qtalker 阅读(203) 评论(0) 推荐(0) 编辑