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 笛卡尔树的构造 先看一个简单的笛卡尔树 我们使用增量构建笛卡尔树来完成,就和增量构建后缀自动机一样容易。我们来对x分类讨论如果x比5小怎么样,如下如果x在5和7之间如果x在7和9之间如果x比9大呢...

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

nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial 题目描述小敏和小燕是一对好朋友。他们正在玩一种神奇的游戏,叫 Minecraft。他们现在要做一个由方块构成的长条工艺品。但是方块现在是乱的,而且由于机器的要求,他们只能做到把这个工艺品最左边的方块放到最右边。他们想,在仅这一个操作下,最漂亮的工艺品能多漂亮。两个工艺品美观的比较方法是,从头开始比较,如果第i 个位置上方块不一样那么谁的瑕疵度小,那么谁就更漂亮,如果一样那么继续比较第i+1...

nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial 前言 从大一上接触C++,到大一下接触ACM,到现在大三下,我自以为对C++有了很深的理解,其实不然,我不清楚的地方还特别多,准备趁此空闲时间重学C++。 const 与指针 这是这篇博文的重点,常常我们会碰到多种声明 1234const char* const a = new char[10];const char* a = new char[10];char* const a = new...

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