自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 单链表的两个递归遍历算法比较

第一种算法:void print(ListNode* list){ if(list!=NULL) { if(list->next!=NULL) { std::coutvalue; print(list->next); } }}第二种算法:void print(ListNode* list){ if(list!=NULL) { std::cou

2018-03-02 23:13:40 1255

原创 十一、文件系统

inode、间接块索引表、文件控制块FCB硬盘读写单位是扇区,因此一个块是由多个扇区组成的,块大小是扇区大小的整数倍。块是文件系统的读写单位,因此文件至少要占一个块,当文件体积大于一个块时,文件要拆分为多个块来存储。文件组织形式是对各个文件而言的,UNIX操作系统中的索引结构-inode。采用索引结构的文件系统,文件中的块依然可以分散到不连续的零散空间中,保留了磁盘高利用率的优点,更重要的

2017-12-02 09:08:01 1826 1

原创 十、硬盘驱动程序

硬盘分区表创建磁盘分区表文件系统是运行在操作系统中的软件模块,是操作系统中提供的一套管理磁盘文件读写方法和数据组织、储存形式。因此文件系统是程序。它的管理对象是文件,管辖范围是分区,因此文件系统是建立在分区的基础上,每个分区都可以有不同的文件系统。扇区:是硬盘读写的基本单位,扇区从1开始编号,大小字节数=256*N,N一般为2,因此扇区大小为512字节。磁道:是扇区的载体,从0开始

2017-12-02 08:54:24 4010

原创 九、完善堆内系统调用:Linux系统调用、printf的内部实现、malloc的内部实现

系统调用

2017-12-02 08:54:06 1790

原创 八、用户进程:TSS、用户进程的创建、用户进程的执行(通过调度函数)

用户进程

2017-12-02 08:53:52 1776 1

原创 七、输入输出系统:用锁实现输出、编写键盘驱动程序、环形输入缓冲区

锁多线程调度中出现了字符乱象,本质是访问公共资源需要很多步操作,但是这些操作不具备原子性,它被任务调度器给断开了,从而让其他线程有机会去破坏显存和光标寄存器这两类公共资源。公共资源:公共内存、公共文件、公共硬件等,我们这里的是显存和光标寄存器临界区:各个任务中访问公共资源的指令代码组成的区域就是临界区,,强调一下,临界区是指程序中那些访问公共资源的代码,即临界区是指令代码。互斥:指

2017-12-02 08:53:37 675

原创 六、线程的代码实现:pcb栈、线程栈、PCB初始化、中断处理函数、调度函数->多线程调度

线程

2017-11-30 21:17:23 3740

原创 五、内存管理系统:makefile、整页分配

makefile

2017-11-30 21:16:10 578

原创 四,中断:中断程序(汇编和C语言)、idt、IDTR、8259A、8253以及发生中断时候的压栈细节和特权级保护

中断系统

2017-11-30 21:15:43 3651

原创 二、进入保护模式--内核加载器LOADER:实模式下内存容量检测、开启保护模式、开启分页模式、加载kernel到内存缓冲区、加载kernel到内存(内存复制函数)->kernel

开始进入保护模式:

2017-11-30 21:15:03 1478

原创 三、完善内核功能:添加字符、字符串、整数打印功能

在内核中实现打印功能

2017-11-30 21:13:31 625

原创 一、开机进入实模式--BIOS->MBR(硬盘扇区复制函数)->LOADER

说明:记录的大部分是我掌握不熟悉的内容,所以知识点不是那么全面。

2017-10-04 16:09:25 4325

原创 --------------------------------开始动手自己写一个简易的操作系统-----------------------------------------0

之前一直看了操作系统,决定深不可测,于是想看看内部原理一探究竟,将几个月来忙了好多事情,最有意义的事情莫过于用汇编和c语言实现了一个简易的操作系统,让我从本质上对内核线程、用户进程、特权级变换、任务调度、锁、信号量等等有了本质的了解。下面我会把之间遇到了各自困难记录下来以供位复习,当然也会贴上代码同大家一同分享。首先说明一下工作环境:操作系统:centos7虚拟机:boch

2017-10-04 15:43:26 870

原创 《c++ primer》 第12章 动态内存 学习笔记

概述静态内存:保存static变量和全局变量。它在程序结束后自行销毁。栈内存:保存局部非static变量,它在程序块接受后自行销毁。12.1动态内存与智能指针c++中动态内存的管理是通过一对运算符来完成的:new:在动态内存中对对象分配空间并返回一个指向该对象的指针,我们可以对该对象进行初始化。delete:接受一个动态对象的指针,销毁该对象,并释放与之关联的内存。

2017-05-11 16:23:51 281

原创 《c++ primer》 第11章 关联容器 学习笔记

11.1使用关联容器按关键字有序保存元素   map                       关联数组:保存关键字-值对应            头文件map   set                      关键字既值,既只保存关键字的容器   头文件set   multimap               关键字可重复出现的map

2017-05-09 22:21:07 303

原创 《C++ Primer》第10章:泛型算法 学习笔记总结

概述大多数算法定义在#include或者#include中。迭代器算法不能依赖于容器,泛型算法本身不会执行容器的操作,它们只会运行于迭代器之上,执行迭代器的操作,结果:算法永远不能改变底层容器的大小。算法可以修改容器里面的值,移动里面的元素,就是不能添加删除元素。虽然有些插入迭代器可以增删元素,当算法操作这样的迭代器时,迭代器可以完成增删效果,但是算法不能。10.2.1只读算法大部分标

2017-05-06 16:20:48 575

原创 《C++ Primer》第9章:顺序容器

《C++ Primer》第9章:顺序容器

2017-04-29 11:15:55 278

原创 《C++ Primer》第8章:IO库

《C++ Primer》第8章:IO库

2017-04-29 11:11:56 281

原创 《C++ Primer》第7章:类

《C++ Primer》第7章:类

2017-04-28 22:42:46 266

原创 《C++ Primer》第6章:函数

《C++ Primer》第6章:函数,可以对着框图复习知识点

2017-04-28 22:31:27 316

原创 《C++ Primer》第3章:字符串、向量和数组

《C++ Primer》第3章:字符串、向量和数组,欢迎大家按照框架复习!!不对的地方希望大家指正!

2017-04-22 21:34:52 326

原创 《C++ Primer》第2章:变量和基本类型

《C++ Primer》知识点总结,可以对着框图复习知识点

2017-04-18 21:55:07 358

原创 第七章:linux文件与目录管理

鸟哥的linux私房菜第七章:linux的文件与目录管理。不对的地方希望大家指正!!

2017-04-16 22:32:59 283

原创 第六章:linux的文件权限与目录配置

鸟哥的linux私房菜第六章:linux的文件权限与目录配置,不对的地方希望大家指正!!

2017-04-14 21:52:21 335

原创 为什么c语言第一个数组元素要从a[0]开始数起,不从a[1]数起呢?

大家学习c语言刚接触数组时候,书上说第一个数组元素要从下标0开始数起,不能从1开始数,比如 int a[4]={1,2,3,4};那么a[0]=1;为什么不从1数起呢即a{1}=1呢?不更符合大家的生活习惯吗?

2016-12-31 19:32:13 15848 4

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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