
现代操作系统
文章平均质量分 74
千念飞羽
这个作者很懒,什么都没留下…
展开
-
读书笔记-现代操作系统-4文件系统-4.4文件系统管理和优化
4.4 文件系统管理和优化4.4.1 磁盘空间管理几乎所有的文件系统都是把文件分割成固定大小的块来储存的(各块之间不一定相邻)块大小 通常需要在空间利用率和磁盘数据率之间提供一定平衡,通常用4KB。记录空闲块。 磁盘块链表,每个块包含尽可能多的空闲磁盘块号。如果空闲区域连续的话可以考虑添加空闲块的数量。位图,但是不常用,只有在磁盘接近满的情况下才比较划算。 还有一个问题需要考虑的是如果保原创 2016-07-13 00:47:11 · 605 阅读 · 0 评论 -
读书笔记-现代操作系统-4文件系统-4.3文件系统的实现
4.3 文件系统的实现4.3.1 文件系统布局磁盘的0号扇区称为主引导记录(Master Boot Record,MBR),用来引导计算机。 MBR之后是分区表,该表记录的每个分区的起始和结束地址。表中的一个分区被标记为活动分区。在计算机被引导的时候,BIOS读入并执行MBR。 MBR做的第一件事是确定活动分区,读入它第一个块,称为引导块(boot block),并执行之。 引导块中程序装在该原创 2016-07-12 23:43:32 · 683 阅读 · 0 评论 -
读书笔记-现代操作系统-4文件系统-4.1文件4.2目录
4. 文件系统长期储存大量信息的三个基本要求: 1. 能够储存大量信息。 2. 使用信息的进程终止时,信息仍旧存在。 3. 必须能够使多个进程并发存取有关信息。文件的概念: 文件是进程创建的信息逻辑单元。每个文件可以看成是一种地址空间。储存在文件中的信息必须是持久的。 总体上看,操作系统中处理文件的部分称为文件系统(file system)4.1 文件4.1.1 文件命名文件是一种抽象机制原创 2016-07-12 22:18:49 · 563 阅读 · 0 评论 -
读书笔记-现代操作系统-3储存管理-3.5分页系统中的设计问题
3.7 分段有两个或者多个独立的地址空间可能比只有一个要好得多。因为程序在运行的过程中有些部分会不断增长,如果只用一维的线性空间可能会有很多问题。由此产生了段的概念。通用的解决方案是在机器上提供多个互相独立的称为段(segment)的地址空间。每个段由一个从0到最大的线性地址序列构成。各个段的长度可以是0-某个运行的最大值之间的任何值。不同的段长度一般都是不同的。并且在运行期间可以动态的改变。 这原创 2016-07-12 12:22:59 · 419 阅读 · 0 评论 -
读书笔记-现代操作系统-3储存管理-3.6有关实现的问题
3.6 有关实现问题3.6.1 与分页有关的工作创建进程时 操作系统确定程序和数据在初始时有多大,并为它们创建一个页表。为页表分配空间并对其初始化。操作系统需要在磁盘交换区中分配空间,以便在一个进程换出时在磁盘上有放置此进程的空间用程序正文和数据对交换区进行初始化,这样当新进程发生缺页中断时,可以调用需要的页面。操作系统必须把有关页表和磁盘交换区的信息储存在进程中进程执行时 为新进程设原创 2016-07-12 10:52:04 · 875 阅读 · 0 评论 -
读书笔记-现代操作系统-3储存管理-3.5分页系统中的设计问题
3.5 分页系统中的设计问题3.5.1 局部分配策略和全局分配策略怎样在互相竞争的可运行程序之间分配内存。 局部页面置换算法,只在进程内部分配,如果有缺页则置换本进程内的页面。 全局页面置换算法,在所有进程所占内存分配,如果有缺页则置换所有进程中最适合的页面。 通常来说全局页面置换更好,尤其是在工作集的大小随进程运行时间发生变化时这种现象更加明显。若使用局部算法,即使有大量空闲页框存在,工作集原创 2016-07-11 10:10:14 · 586 阅读 · 0 评论 -
读书笔记-现代操作系统-3储存管理-3.4页面置换算法
3.4 页面置换算法3.4.1 最优页面置换算法无法实现的算法。简单的说置换出最长指令之后需要访问的页面。3.4.2 最近未使用页面置换算法系统为每一个页面设置两个位,一个是被访问时设置R位,另一个是修改页面被写入时设置M位。 如果在一段时间内(比如说20ms)未访问则将R设置为未访问。 如果已经修改则需要将M设置为访问。所有页面分为四类没有被访问,没有被修改没有被访问原创 2016-07-10 09:59:09 · 925 阅读 · 0 评论 -
读书笔记-现代操作系统-3储存管理-3.3虚拟内存
3.3 虚拟内存虚拟内存的基本思想: 每个程序拥有自己的地址空间,这个空间被分割成多个块。每一块 称作一页或页面(page)。每一页有连续的地址空间。这些页被映射到物理内存,但并不是所有的页都必须在内存中才能运行。当程序引用到一部分在物理内存中地址空间时,由硬件立刻执行必要的映射,当程序引用一部分不在物理内存中的地址空间时,由操作系统负责将缺失的部分装入物理内存并重新执行失败的指令。3.3.1 分原创 2016-07-09 23:17:15 · 870 阅读 · 0 评论 -
读书笔记-现代操作系统-3储存管理-3.1无储存器抽象3.2一种储存器抽象:地址空间
3. 储存管理3.1 无储存器抽象早期计算机没有内存抽象,都采用物理地址,多道程序设计都采用多线程的方式。 也可以采用静态重定位的方式:为每个程序加上一个固定的常数。速度比较慢且容易出错3.2一种储存器抽象:地址空间物理地址暴露带来的严重问题:如果用户程序可以寻址内存每个字节,他们很容易破换操作系统使用绝对的物理地址,多道程序设计很困难3.2.1 地址空间的概念想要互相独立的内存空间,需要解原创 2016-07-09 22:09:56 · 628 阅读 · 0 评论 -
读书笔记-现代操作系统-2进程与线程-2.4调度
2.4调度计算密集型/IO密集型何时调度:在创建一个新进程后再一个进程退出时在一个进程IO和信号量或其他原因阻塞时中断发生时调度算法分类:批处理交互式实时调度算法的目标:所有系统:公平-给每个进程公平的CPU份额策略强制执行-看到所宣布的策略执行平衡-保存系统的所有部分忙碌批处理:吞吐量-每小时最大作业数周转时间-从提交到终止间的最小时间CPU利用率-保存CPU始终忙碌原创 2016-07-08 15:23:22 · 556 阅读 · 0 评论 -
读书笔记-现代操作系统-2进程与线程-2.3进程间通信
2. 进程与线程2.3 进程间通信进程间通信(Inter Process Communication)IPC问题:一个进程如何把信息传递给另一个确保两个或更多进程在关键活动中不会出现交叉正确的顺序运行程序 后两个对于线程也成立,通常来说线程可以通过共享地址空间实现信息传递,当然你也可以采用其他方式比如说消息传递机制等等。2.3.1 竞争条件和临界区两个或多个进程读写某些数据,而最后结果取决原创 2016-07-07 23:17:40 · 795 阅读 · 0 评论 -
读书笔记-现代操作系统-2进程与线程-2.1进程2.2线程
1. 进程与线程首先,应该考虑的是引入进程和线程需要解决的问题是什么? 以我个人的意见来看,进程的抽象解决了这样的一个问题:使同一台计算机上可以运行多道不相关联的任务,而进程的引入主要目的在于提高同一个任务完成的效率。如果围绕这个进程和线程的目的来看分析进程和线程的区别就比较容易总结了。1.1 进程:由于需要解决多个任务的问题,进程首先需要的就是资源分组处理和执行能力。这些资源和能力定义了进程。原创 2016-07-07 09:28:02 · 1046 阅读 · 0 评论 -
读书笔记-现代操作系统-6死锁-6.1资源6.2 死锁概述
6. 死锁6.1 资源为了尽可能使关于死锁的讨论通用,我们把这类需要排他性使用的对象成为资源。 资源可以是硬件设备或是一组信息。 资源就是随着时间的推移必须能获得、使用以及释放的任何东西6.1.1 可抢占资源和不可抢占资源可抢占资源(preemptable resource)可以从拥有它的进程中抢占而不会产生任何副作用。 比如进程a和b都占用了打印机,进程a占用了打印机,但是在打印机完成之前用原创 2016-07-13 14:13:12 · 626 阅读 · 0 评论 -
读书笔记-现代操作系统-6死锁-6.3鸵鸟算法6.4死锁检测和死锁恢复
6.3 鸵鸟算法不考虑死锁问题。 因为实际工作中很可能有其他更为严重的问题。如果死锁的频率不高可不考虑死锁。6.4 死锁检测和死锁恢复6.4.1 每种类型一个资源的死锁检测步骤: 1. 对图中的每一个节点N,将N作为起始点执行下面5个步骤。 2. 将L初始化为空表,并清除所有的有向边标记。 3. 将当前节点添加到L的尾部,并检测该节点是否在L中已出现两次,如果是。那么该图包含了一个环(已列在原创 2016-07-13 14:56:15 · 3781 阅读 · 0 评论 -
读书笔记-现代操作系统-6死锁-6.6死锁预防
6.6.1 破坏互斥条件如果资源不被一个进程独占,死锁就不会产生。 比如打印机,通过采用假脱机打印机技术可以允许若干个进程同时产生输出。这个模型中唯一正值请求使用物理打印机的进程是打印机的守护进程,由于守护进程绝不会请求别的资源,所以不会因打印机而产生死锁。 从思路的角度说尽量让能请求资源的进程尽可能的少。6.6.2 破坏占有和等待条件只要禁止已持有资源的进程再等待其他资源,可以消除死锁:一种实原创 2016-07-13 15:39:43 · 600 阅读 · 0 评论 -
读书笔记-现代操作系统-8多机处理-8.4分布式系统
8.4 分布式系统分布式系统(distributed system)和多计算机有什么区别多计算机的节点通常有CPU、RAM、网卡,可能还有用于分页的硬盘。而分布式系统的中的每个节点都是一台计算机一台多计算机的所有节点一般都在一个房间里,而分布式系统可能分布在全球范围内一台多计算机的所有节点运行相同的操作系统,而分布式可以运行不同的系统从技术角度多处理机有共享内存 从应用角原创 2016-07-23 21:35:47 · 1080 阅读 · 0 评论 -
读书笔记-现代操作系统-8多处理机-8.3虚拟化
8.3 虚拟化虚拟化(virtualization)这种技术允许一台机器中存在多台虚拟机,每一台虚拟机可能运行不同的操作系统。 虚拟化起作用的原因是: 大部分服务器停机的原因不是因为硬件的故障,而是因为臃肿、不可靠、有漏洞的软件,特别是操作系统。使用虚拟化技术,唯一一个运行在内核态的软件是管理程序(hypervisor),它的代码量比一个完整操作系统的代码量少两个数量级,漏洞更少。优势: -原创 2016-07-22 21:56:22 · 815 阅读 · 0 评论 -
读书笔记-现代操作系统-8多处理机系统-8.2多计算机
8.2 多计算机为了避免多处理机的构造困难,造价高昂的问题,多计算机(multicomputes)成为一个更加容易构建的系统。因为其基本部件只是一台配有高性能网络接口卡的PC裸机。获得高性能的设计互联网络以及接口卡。这与多处理机中构造共享储存器是完全类似的。8.2.1 多计算机硬件1.互联技术 也就网络拓扑有多种连接方式主要的有: 两种交换机制: 包交换:每个消息首先被分解成原创 2016-07-22 14:24:44 · 1396 阅读 · 0 评论 -
读书笔记-现代操作系统-8多处理机系统-8.1多处理机
多处理通常来说分为3类:共享内存的多处理,多个cpu共享同一个储存器,单向通信时间2-10ns消息传递多计算机,每个储存器局部对应一个cpu,且只能被该cpu访问,这些cpu通过互联网网络发送多字消息通信,典型通信时间10-50us广域分布式系统,所有计算机都有自己的储存器,通过消息传递进系统通信,与2不同的是这里使用了完整的计算,典型的通信时间10-100ms 8.1 多处理机原创 2016-07-21 16:47:11 · 1472 阅读 · 0 评论 -
读书笔记-现代操作系统-7多媒体操作系统-7.8 高速缓存7.9多媒体磁盘调度
7.8 高速缓存7.8.1 块高速缓存如果两个观众观看的时间点不超过ΔT\Delta T的帧缓存起来,这样就可以不必在重复读取,但是也需要考虑到内存使用率和高速缓存的时间等等诸多因素另一个扩展的思想是。通过缓慢的调整播放的速率来使高速缓存的两个帧逐渐迁移到一起,实现同步。这个与之前的近似点播的思想相似。7.8.2 文件高速缓存可以将最流行的文件放入高速缓存。或者将流行的文件的前几分钟放入高速缓存。这原创 2016-07-17 22:07:31 · 522 阅读 · 0 评论 -
读书笔记-现代操作系统-7多媒体操作系统-7.6多媒体文件系统泛型7.7文件存放
7.6 多媒体文件系统泛型多媒体系统和传统的文件系统有很大的不同,采用的是类似VCR工作方式一样的拉取型服务器(pull server): 用户进程发出start系统调用,指定要读取的文件和其他各种参数,然后用户进程以帧进来的速率对他们进行处理。直到用户发出stop停止命令停止数据退给用户。7.6.1 VCR控制功能视频服务通常也需要实现VCR控制功能,包括暂停、快进和倒带。暂停:用户发送一个消息原创 2016-07-17 21:43:20 · 1150 阅读 · 0 评论 -
读书笔记-现代操作系统-7多媒体操作系统-7.5多媒体进程调度
多媒体操作系统和传统操作系统有三个部分由区别:进程调度文件系统磁盘调度7.5.1 调度同质进程最简单的视频服务器可以支持显示固定书名的电影,所有电影都使用相同的帧率、视频分辨率、数据率以及其他参数。 可以简单的采用轮转调度,唯一的区别是需要定时机制,以确保每一进程以恰当的频率调度。7.5.2 一般实时调度但是通常来说不同电影的帧率大小等等参数都不一样,所有通常需要考虑一般的模型: 多个进原创 2016-07-16 22:49:31 · 530 阅读 · 0 评论 -
读书笔记-现代操作系统-7多媒体操作系统-7.3视频编码7.4音频压缩
7.3 视频压缩首先压缩算法需要两个概念一个是在源端对数据进行压缩,另一个是在目的端对数据进行解压缩。或者分别被称为编码和解码 有些算法具有不对称性,这是指压缩和解压缩的复杂度是不一样的。这对实际应用而言是很有意义的。 另一个是有损和无损的概念,文件压缩通常都是需要无损的,但是对于视频来说有损压缩更常见。7.3.1 JPEG标准Joint Photographic Experts Group 联原创 2016-07-16 22:09:06 · 688 阅读 · 0 评论 -
读书笔记-现代操作系统-7多媒体操作系统-7.1多媒体简介7.2 多媒体文件
7.1多媒体简介多媒体材质:CD-ROM->DVD(5-17G)->Blu-ray(25G/50G)/HD DVD(15G/30G)多媒体应用方向: 1. 从网上下载多媒体 2. 视频本身 3. 游戏制作 4. 视频点播:一个或多个视频服务器、一个分布式网络以及一个在每间房中用来对信号进行解码的机顶盒。多媒体两个关键特征: 1. 多媒体使用极高的数据率 2. 多媒体要求实时回放。NTSC原创 2016-07-16 21:11:43 · 631 阅读 · 0 评论 -
读书笔记-现代操作系统-6死锁-6.7其他问题
6.7 其他问题6.7.1 两阶段加锁数据库中常用的,两阶段加锁: 进程试图对所有所需的记录进行加锁,一次锁一个记录。如果第一阶段加锁成功,就开始第二阶段,完成更新过后然后释放锁。如果第一阶段加锁失败,那么该进程释放它所有加锁的记录,然后重新开始第一阶段。这种方法类似于提取或者至少是未释放一些不可逆操作之前请求所有资源。6.7.2 通信死锁两个或者两个以上进程利用发送信息来通信时,当进程a向进程b原创 2016-07-13 15:52:54 · 688 阅读 · 0 评论 -
读书笔记-现代操作系统-6死锁-6.5死锁避免
6.5 死锁避免系统判断分配资源是否安全,并且只能在保证安全的条件下分配资源。6.5.1 资源轨迹图 当在t点时系统必须做出正确的判断,应该将一部分程序挂起以避免产生死锁6.5.2 安全状态和不安全状态安全状态 如果没有死锁状态,而且即使所有进程突然请求对资源的最大需求,也仍然存在某种调度次序能够使得每个进程运行完毕,则该状态是安全的。 如果线程可以通过仔细的调度避免死锁,所有状态时安全的,原创 2016-07-13 15:26:39 · 847 阅读 · 0 评论 -
日常小结-经典IPC问题实现
基本原理来自《现代操作系统》我用java给重写了一边。多线程经验不多,有问题多指教。生产者消费者问题有一点需要特别注意一下,如果只有一个生产者一个消费者可以使用notify。如果有多个生产者和消费者则需要使用notifyall否则会产生死锁。 这里使用wait和notify方法实现也可以使用其他方式。日后或许会在补充。package ipc;import java.util.Random;pub原创 2016-10-23 16:08:55 · 1369 阅读 · 0 评论