操作系统知识点汇总

478人阅读 评论(2) 收藏 举报
分类:


 

 网卡

 网卡都有一个唯一的地址,独一无二,格式如: 11:27:F5: 8A:79:54 ,我们又称作为MAC地址,对应着电脑上的物理地址

 每一台电脑都需要IP地址,IP地址是由DHCP服务器来进行动态分配的

 分配好的有网管路由地址、DNS服务器


 
 上网的时候都需要域名解析,也就是把地址解析为IP地址
  DNS服务器不在局域网内,所以只能通过APR地址解析协议查找到网关路由器,再由网管路由器发送给给DNS服务器进行域名的解  析工作

 CPU
 用来操作指令,其中CPU中有寄存器能够临时放置一些东西,时对寄存器中的数据进行运算操作的。最后在把计算后的数据放置到内存中去。和程序计数器,程序计数器放置下一条指令的地址
 内存:用来放置东西,也就是指令
 CPU---->内存:通过系统总线,I/O桥,存储总线才能够到达内存
 硬盘--->CPU:可以通过直接内存的方式DMA,直接装在到内存中

 局部性原理
 CPU这块根据局部性原理,又设置了缓存的操作
 针对一些批处理计算机系统,操作系统收集任务后,就会逐个装载到内存中,让cpu去运行,如果都是单纯的计算的话,没什么,  CPU执行的非常的块,但是如果有IO相关的操作的话,CPU就会闲置下来,等待内存和硬盘疯狂的load数据。

 CPU闲置了怎么充分利用
 之前内存中都是装的是一个程序,所以IO操作的时候CPU可以闲置起来,那么接下来可以在内存中放置多个程序,有程序在进行IO操作的时候,CPU就开始执行下一个程序操作,但是也需要把内存的空间分配好

 数据覆盖问题
 如果CPU在执行程序时候,两个程序用到了相同的一段内存的话,就可能会导致内存中的数据被覆盖操作,因此这里采用了静态地址重定位,就是把每个地址都加上1000的操作,这样的话,在做内存紧缩的时候,就会有问题了。

 那么运行时修改就没问题了,叫做地址的动态重定位,就是cpu在运行时,第一个程序的地址为0,第二个程序时就改为10000了
 最后就有一个专有的名词叫做内存管理关于MMU来管理这个东西

 虚拟内存
 程序越来越大,如何让有限的内存装入更多的程序,对每个程序,不要全部装入内存,要分块装载,例如先把最重要的代码指令装载进来,在运行中按需要装载别的东西

 利用的原理
 时间局部性:如果程序中某条指令一旦执行,则不久之后该指令可能再次被执行;如果某数据被访问,则不久之后该数据可能再次被访问。

 空间局部性:一旦程序访问了某个存储单元,则不就之后,它附近的存储单元也将被访问

 
 进程也需要进行上下文的切换
 每次上下文切换的时候,都需要把函数形成的栈帧和栈顶,在寄存器EBP和ESP中保存着,还有文件句柄、程序段和数据段的地址、使用CPU的时间、等待CPU的时间,这些保存的东西,统称为进程控制块(Processing Control Block)
 进程之间也有状态的转换:就绪、阻塞、运行
 进程之间是相互独立的、信息无法进行共享操作
 出现了多线程的操作,共享地址空间、全局变量、文件资源等
 进程也有属于自己私有的空间,比如函数调用堆栈、状态等

 谁来管理线程
 用户空间的进程可以创建线程(用户线程),内核也会创建线程(内核线程),用户线程映射到内核线程上

 
 CPU和内存是计算机的核心,CPU从内存中取出指令后,做运算后,就再次写回到内存中。

 磁盘的模型


 
 CPU比内存快100倍,比硬盘快上1000倍
 用缓存、直接内存访问、多进程/多线程切换等方法来满足CPU--内存--硬盘之间的速度不匹配问题
     
 硬盘的内部结构
 
 文件
 操作系统中都是按照文件来存放过的,那么如何映射到磁盘上的文件区域块呢

 第一种方式
 连续放置:随机访问文件效率好,知道了开头和长度,就可以像数组一样可以随便访问,但是文件删除后,磁盘碎片比较的多,浪费了空间

 
 第二种方式
 链式:每一块空闲的磁盘都得到了充分的利用,效率极高,但是每次查找都得从头开始


 第三种方式
 找一个磁盘块专门存放索引属性,以及该文件所使用的磁盘块
 唯一的缺点是使用额外的磁盘块单独存放inode





0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:511397次
    • 积分:13192
    • 等级:
    • 排名:第999名
    • 原创:290篇
    • 转载:5篇
    • 译文:1篇
    • 评论:3127条
    博客专栏