抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

CPU内存

CPU-L1cache-L2cache-memery-disk

逻辑地址空间

抽象、隔离、保护、共享、虚拟化(临时放入disk)

内存管理

程序重定向,分段,分页,虚拟内存,按需分叶虚拟内存

地址空间和地址生成

C程序用变量表示地址,汇编还是用符号,机器码就开始使用逻辑地址了,CPU的MMU中有一段区域来映射逻辑地址到物理地址

约束程序的内存

程序只可以访问他自己的内存,当他访问其他地方的时候,操作系统应该使用安全检测

内存碎片

外部碎片,是分配单元之间的内存碎片
内部碎片,已经分配给了应用程序,但是应用程序没法使用它

连续内存分配

程序启动的时候要分配,运行的时候要分配

操作系统的启动

DISK中放操作系统,BIOS是基本的IO系统,检测外设,Bootloader能够加载OS,BIOS从CS段寄存器;IP指令寄存器开始执行,然后BIOS会POST(加电自检),然后BIOS找到bootloader加载Bootloader,并传递控制权,然后Bootloader找到OS,读到内存吧控制权交给OS

操作系统的中断、系统调用、异常

系统调用是应用程序主动想操作系统发出服务请求,
异常是来源于不良的应用程序的非法指令
中断是来自不同硬件设备到额计时器和网络的中断
我们不能让应用程序直接访问外设,这不安全,另外OS可以提供更好的借口,通用可移植

中断处理

保存现场、查表、中断处理、清楚中断标志、恢复现场

操作系统是什么

是一个控制软件,能管理应用程序,为应用程序提供服务,杀死应用程序,能够分配资源,能够管理外部设备,承上启下,硬件之上,应用程序之下,

Kernel

CPU调度,物理内存管理,虚拟内存管理,文件系统管理,中断处理和设备驱动

Kernel特征

并发,共享(1在一个时间点,只有一个程序能够访问2同时访问),虚拟(利用多到程序设计技术,让每个用户都觉得有一个计算机为他服务),异步(程序走走停停,而不是一直走)

nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial 笛卡尔树 这个笛卡尔树没写出来,气死了 他是二叉树,他是堆,二叉树中序遍历的结果就是数组a 笛卡尔树的构造 先看一个简单的笛卡尔树 我们使用增量构建笛卡尔树来完成,就和增量构建后缀自动机一样容易...

nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial 阿里笔试 感觉很难受,笛卡尔树没写出来,气死了,我咋这么菜 第一题 有n个羊圈,第i个羊圈初始有a[i]个羊,每天早上每个羊圈会增加k的羊,每天晚上主人会选出羊圈中羊最多的那个,卖掉一半,变为$\...

创建工作空间

我们先创建一个工作空间myGit,在其中创建一个项目project,植入两个文件a.txt和b.txt,并分别写入”a”和”b”

1
2
3
4
5
6
cd ~ 
mkdir -p myGit/project
cd myGit/project
touch a.txt b.txt
echo "a" >> a.txt
echo "b" >> b.txt

初始化git

紧接着我们用git初始化这个项目

1
git init

nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial 题目描述小敏和小燕是一对好朋友。他们正在玩一种神奇的游戏,叫 Minecraft。他们现在要做一个由方块构成的长条工艺品。但是方块现在是乱的,而且由于机器的要求,他们只能做到把这个工艺品最左边的方块...

nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial 前言 从大一上接触C++,到大一下接触ACM,到现在大三下,我自以为对C++有了很深的理解,其实不然,我不清楚的地方还特别多,准备趁此空闲时间重学C++。 const 与指针 这是这篇博文的重点...

为什么我们需要设计模式

有一类问题会在软件设计中反复出现,我们能够提出一种抽象的方法来解决这类问题,这就是设计模式。

设计模式的七大原则

  • 单一职责原则
  • 接口隔离原则
  • 依赖反转原则
  • 里氏替换原则
  • 开闭原则
  • 迪米特法则
  • 合成复用原则

nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial Spring 模块 Spring有六大模块,测试、容器、面向切面编程、instrumentation、数据访问与集成、Web与远程调用。 测试: Test 容器: Beans,Core,Cont...