读书笔记-现代操作系统
文章平均质量分 51
hahachenchen789
后台开发,专注容器、k8s、云原生。
展开
-
现代操作系统-死锁
死锁的规范定义:如果一个进程集合中的每个进程都在等待只能由该进程集合中的其他进程才能引发的事件,那么该进程集合就是死锁的。大部分死锁都与资源相关。资源分为两类:可抢占和不可抢占的,可抢占资源可以从拥有它的进程中抢占而不会产生任何副作用,存储器就是一类可抢占的资源。例如,一个系统拥有256M的用户内存和一台打印机,有两个进程都想打印,进程A请求并获得了打印机,然后进行任务,但没有完成之前,它的时间片...原创 2018-04-07 15:20:16 · 347 阅读 · 0 评论 -
现代操作系统-虚拟化和云
一个公司可能同时需要邮件服务器,WEb服务器,ftp服务器等。这些服务器可以运行在不同计算机上,但是花费过大。因此可以使用虚拟化技术,在同一物理硬件上创建多台虚拟机器的假象。好处是一台虚拟机的故障不会影响其他虚拟机。具有强隔离性。此外虚拟技术的好处还包括物理机数量的减少节省了硬件等开销。还有优势就是设置检查点和虚拟机迁移(例如跨服务器进行负载均衡)比在普通操作系统上运行的迁移要容易的多。还有优势就...原创 2018-04-07 17:45:26 · 514 阅读 · 0 评论 -
现代操作系统-多处理机系统(分布式)
多处理机系统:主要是为了提高计算能力,满足对一些工业问题的计算,比如天气预测,围绕机翼的气流建模,世界经济模拟等。主要有三种模型:分别是1.共享存储器多处理机2.消息传递多计算机3.广域分布式系统对于第一种,所有cpu通过一个共享存储器通信。第二种是许多cpu-存储器通过某种高速互联网网络连接在一起,每个存储器局部对应一个CPU,且只能被该CPU访问。这些CPU通过互联网发送消息通信。这种模型更容...原创 2018-04-08 17:01:04 · 1950 阅读 · 0 评论 -
现代操作系统-内存管理
分层存储器体系:cache, ram,rom,硬盘等,越靠近CPU的价格越贵,但速度也越快。操作系统中管理分层存储器体系的部分称为存储管理器,其任务是有效管理内存,记录哪些内存是正在使用的,哪些内存是空闲的。无存储器抽象最简单的存储器抽象就是根本没有抽象,每个程序直接访问物理内存,当一个程序执行如下指令:MOV REGISTER1,1000计算机会将位置为1000的内存的内容移动到REGISTER...原创 2018-04-09 22:43:33 · 1072 阅读 · 0 评论 -
现代操作系统-页面置换算法
当访问到一个地址是未映射的地址时,MMU注意该页面没有被映射,会让CPU陷入操作系统中,这个陷阱称为缺页中断或缺页错误,操作系统会找到一个很少使用的物理内存的页框然后将其内容写入磁盘,然后将需要访问的页面读到刚刚回收的页框中,修改映射关系即可。当发生缺页中断时,虽然可以随机选择一个页面来置换,但如果每次选择不常使用的页面会提高系统的性能。如果一个频繁使用的页面被置换出内存,很可能短时间内又要调入内...原创 2018-04-10 11:42:52 · 654 阅读 · 0 评论 -
现代操作系统-基础概念
系统调用:system call,为了从操作系统中获得服务。用户程序必须使用系统调用以陷入内核并调用操作系统,TRAP指令把用户态切换成内核态,并启用操作系统。常见的系统调用:fork,execve,open,close,read,write,mkdir,link, mount, chdir, chmod多线程CPU(也称为超线程CPU):允许CPU保持两个不同的线程状态,然后在纳秒级的时间尺度...原创 2018-04-04 22:27:33 · 803 阅读 · 0 评论 -
现代操作系统-进程与线程
多道程序设计:实际上CPU在各个进程之间来回切换。由于CPU在各进程之间来回快速切换,所以每个进程执行其运算的速度是不确定的,对编程进行编程时不能做出任何想当然的假设。进程的创建与写时复制:在Unix系统中,只有一个系统调用可以用来创建新进程:fork,进程创建后,子进程共享父进程的所有内存,一旦两者之一想要修改部分内存,这块内存将首先被复制,以确保修改发生在私有内存区域。为什么要创建线程:1.在...原创 2018-04-05 21:18:01 · 217 阅读 · 0 评论 -
现代操作系统-进程间通信
如何避免竞争条件:1.任何两个进程不能同时处于其临界区2.不应对CPU的速度和数量做任何假设3.临界区外运行的进程不得阻塞其他进程4.不得使进程无限期等待进入临界区生产者-消费者问题:两个进程共享一个公共的固定大小的缓冲区,其中一个是生产者,将信息放入缓冲区,另一个是消费者,从缓冲区中取出信息。问题在于当缓冲区已满,而生产者还想放入一个新的数据,解决方法是让生产者休眠,直到消费者取出一个时唤醒。反...原创 2018-04-06 17:53:46 · 193 阅读 · 0 评论 -
现代操作系统-调度
在不同的系统中,调度程序的优化是不同的,分为三种环境:1.批处理,2.交互式,3.实时批处理系统:用来处理存货清单、账目收入、账目支出等其他周期性作业,在批处理中,不会有用户不耐烦的在终端旁等待一个短请求的快捷响应。因此非抢占式算法可接受的,这种处理方式减少了进程的切换而改善了性能。交互式:为了避免一个进程霸占CPU而拒绝为其他进程服务,抢占是必须的。实时:抢占有时候是不需要的,因为进程了解它们可...原创 2018-04-06 23:21:57 · 318 阅读 · 0 评论