现代操作系统阅读 散记_系统概述

第一章引论,花了半天时间匆匆浏览,大概建立了一个对操作系统的映像

对于下面第六题的答案里提到管道有点迷惑

后面的几个题好难,自己看的还是不太明白哦!

将本书的课后习题及查到的答案附录于下:

1.什么是多道程序设计?

多道程序设计技术是指在内存同时放若干道程序,使它们在系统中并发执行,共享系统中的各种资源。当一道程序暂停执行时,CPU立即转去执行另一道程序。

[特点]:多道、宏观上并行(不同的作业分别在CPU和外设上执行)、微观上串行(在单CPU上交叉运行)。

[多道批处理系统]:将多道程序设计技术应用于批处理系统,就形成多道批处理系统。

2.SPOOLing:

若有进程要求对它打印输出时,SPOOLing系统并不是将这台打印机直接分配给

SPOOLING

进程,而是在共享设备(磁盘或磁鼓)上的输出SPOOLing存储区中为其分配一块存储空间,进程的输出数据以文件形式存放于此。各进程的数据输出文件形成了一个输出队列,由输出SPOOLing系统控制这台打印机进程,依次将队列中的输出文件实际打印输出。在SPOOLing 系统中,实际上并没有为任何进程分配,而只是在输入井和输出井中,为进程分配一存储区和建立一张I/O请求表。这样,便把独占设备改造为共享设备。

3.DMA

DMA原理编辑

DMA 传输将数据从一个地址空间复制到另外一个地址空间。当CPU 初始化这个传输动作,传输动作本身是由 DMA 控制器来实行和完成。典型的例子就是移动一个外部内存的区块到芯片内部更快的内存区。像是这样的操作并没有让处理器工作拖延,反而可以被重新排程去处理其他的工作。DMA 传输对于高效能 嵌入式系统算法和网络是很重要的。

DMA

在实现DMA传输时,是由DMA控制器直接掌管总线,因此,存在着一个总线控制权转移问题。即DMA传输前,CPU要把总线控制权交给DMA控制器,而在结束DMA传输后,DMA控制器应立即把总线控制权再交回给CPU。一个完整的DMA传输过程必须经过DMA请求、DMA响应、DMA传输、DMA结束4个步骤。DMA传输方式无需CPU直接控制传输,也没有中断处理方式那样保留现场和恢复现场的过程,通过硬件为RAM与I/O设备开辟一条直接传送数据的通路,使CPU的效率大为提高。

               中断方式

为了减少程序直接控制方式中CPU等待时间以及提高系统的并行工作程度,用来控制外围设备和内存与CPU之间的数据传送称为中断方式。本词条缺少概述信息栏,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧!

1.定义

CPU暂时中止现行程序的执行,转去执行为某个随机事态服务的中断处理程序.处理完毕后自动恢复原程序的执行.

2.实质

程序切换

实现方法:

保存断点,保护现场;

恢复现场,返回断点.

时间:

一条指令结束时切换.

保证程序的完整性.

3.特点

具有随机性。

4.处理过程

1)唤醒被阻塞的驱动程序;

2)保护被中断过程的CPU环境;

3)分析中断原因,转入相应的设备中断处理程序。

4)进行中断处理;

5)恢复被中断进程的现场。

4.为了支持25行80列字符的单色文本屏幕需要多少视频RAM?1024*768的24位色彩呢?1980年$5/KB成本是多少?现在呢?

取决于需要存储一个像素的多少信息,以及是否采用了压缩技术。
如果是非黑即白的二值图像,不压缩的情况下一个像素只需要1个bit。
如果是256种状态的灰度图像,不压缩的情况下一个像素需要8bit(1字节,256种状态)。
如果用256种状态标识屏幕上某种颜色的灰度,而屏幕采用三基色红绿蓝(RGB),不压缩的情况下一个像素需要占用24bit(3字节),这个就是常说的24位真彩色。
还有各种其他的存储方式,例如15bit、16bit、32bit

250B   1$多

1024*768*3B          2304KB  1w$多

5.

考虑一个有两个CPU的系统,并且每个CPU有两个线程(超线程)假设有3个线程P0,P1,P2,分别以运行时间5ms,10ms,20ms开始。运行这些程序需要多少时间?假设这三个程序都是100%限于CPU,在运行时无阻塞,并且一旦设定就不改变CPU。

考虑一个有两个

CPU

的系统,

并且每个

CPU

有两个线程

(超线程)

假设有三

个线程

P0

P1

P2

,分别以运行时间

5ms

10ms

20ms

开始。运行这些程序需

要多少时间?假设这三个程序都是

100%

限于

CPU

在运行时无阻塞,

并且一旦设

定就不改变

CPU

1)(P0,P1) and P2 => (5ms + 10ms) and 20ms => 20ms

2)(P0,P2) and P1 => (5ms + 20ms) and 10ms => 25ms

3)(P1,P2) and P0 => (10ms + 20ms) and 5ms => 30ms

4)(P0,P1,P2) => (5ms + 10ms + 20ms) => 35ms

6一台计算机有一个四级流水线,每一级都花费相同的时间执行其工作,即1ns。这台机器每秒可执行多少条指令?

答:从管道中每纳秒出现一条指令。意味着该机器每秒执行十亿条指令。它对于管道有多少个阶段不予理睬,即使是10-阶段管道,每阶段1nsec,也将执行对每秒十亿条指令。因为无论哪种情况,管道末端输出的指令数都是一样的。(操作系统第二版中文答案)

7假设一个计算机系统有高速缓存、内存(RAM)以及磁盘,操作系统用虚拟内存。读取缓存中的一个词需要2ns,RAM需要10ns,硬盘需要10ms。如果缓存的命中率是95%,内存的是(缓存失效时)99%,读取一个词的平均时间是多少?

2ns * 0.95 + 10ns *0.99 *(1-0.95) + 10ms * (1-0.99) *(1-0.95)

8文件系统

文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。文件系统由三部分组成:与文件管理有关软件、被管理文件以及实施文件管理所需数据结构。从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等

一个分区或磁盘能作为文件系统使用前,需要初始化,并将记录数据结构写到磁盘上。这个过程就叫建立文件系统。

现代操作系统阅读 散记_系统概述

时间: 2024-10-24 07:44:41

现代操作系统阅读 散记_系统概述的相关文章

Effective C++ 阅读笔记_条款27 尽量少做转型动作

Effective C++ 阅读笔记_条款27 尽量少做转型动作 1.转型的三种形式,可以分为两大类. (1)旧式转型(old-style casts) (1.1) (T) expresstion (1.2) T (expression) (2) 新式转型(c++-style casts) (2.1)const_cast<T> (expression) (2.2)dynamic_cast<T> (expression) (2.3)reinterpret_cast<T>

操作系统——第一章 操作系统概述

操作系统 掌握操作系统的基本概念.基本原理和基本功能,理解操作系统的整体运行. 掌握操作系统进程.内存.文件和I/O管理的策略.算法.机制以及相互关系. 能够运用所学的操作系统原理.方法去分析问题和解决问题并能用C语言表述相关算法 一.操作系统概述 (一)   操作系统的概念.特征.功能和提供的服务 (二)   操作系统的发展和分类 (三)   操作系统的运行环境 内核态与用户态 中断.异常 系统调用 (四)   操作系统的体系结构 并发: 2.  共享: 3.虚拟: 比如说只有一个CPU,但是

Html解析

包:jsoup-1.10.2.jar import java.io.File; import java.io.IOException; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.select.Elements; public class TestHtml { public static void main(String[] args) throws IOException { getElem

理解CART决策树

CART算法 原理 CART全称为Classification and Regression Tree. 回归树 相比ID3,CART遍历所有的特征和特征值,然后使用二元切分法划分数据子集,也就是每个节点都只会分裂2个分支.接着计算数据子集的总方差来度量数据子集的混乱程度,总方差越小数据子集越纯,最后选择总方差最小的划分方式对应的特征和特征值,而二元切分的依据就是将小于等于这个特征值和大于这个特征值的数据划分为两块.这里说的总方差一般就是通过数据子集的样本输出值的均方差 * 数据子集的样本个数来

翻出当年的学习进度汇报邮件——前路不易,且行且珍惜

离回归程序猿行列已经一年又一个月整了,也就是进入现在这家公司已经一年又一个月整.确实是个整数,清清楚楚的记得去年入职时间是3月27日,似乎冥冥中总有那么些凑巧的事情发生.现在的公司是一家创业型公司,接受过一轮风投,从创办至今,时间其实不算短.今年是公司非常关键的一年,总觉得年初至今的项目目标不够明确,甚至有点杂乱.作为一个开发人员兼中层管理,最近这段时间想的比较多.可能由于上个月拼死拼活做的项目因为找不到盈利模式被迫暂停的缘故,最近几个星期尤为浮躁,很难静下心来看书学习. 今天下午一时兴起开始整

MatLab2012b/MatLab2013b 分类器大全(svm,knn,随机森林等)

train_data是训练特征数据, train_label是分类标签.Predict_label是预测的标签.MatLab训练数据, 得到语义标签向量 Scores(概率输出). 1.逻辑回归(多项式MultiNomial logistic Regression)Factor = mnrfit(train_data, train_label);Scores = mnrval(Factor, test_data);scores是语义向量(概率输出).对高维特征,吃不消. 2.随机森林分类器(Ra

字符乱码 常识详解

首页我的博客 推荐博文 最新原创 专家博客 推荐博客 搜索 网站导航 登录注册 徐新华polaris http://polaris.blog.51cto.com [复制] [订阅] 原创:49翻译:0转载:4 主页 | Java | C/C++ | PHP | JavaScript | Groovy | Linux | 计算机网络 | 其他技术 | 精品软件 | 生活杂谈 polaris1119 的BLOG 发私信 加友情链接 博客统计信息 51CTO推荐博客 用户名:polaris1119 文

liunx 基础命令

1. 显示当前目录所有的文件和目录信息 > ls       //list > ls  XX目录     //查看指定目录下边的文件信息 2. 显示当前文件目录位置 > pwd 3. 目录之间切换 > cd  目录名字 > cd  ..   切换到上级目录 4. 切换到完全命令模式 > init 3      进入命令模式 > init 5      进入可视化操作界面 5. 用户切换到超级管理员 > su - root    //$是普通用户    #是超

[Unity 3d]荒岛逃生游戏制作

这是我和一名同学一起制作的<Memory Island>荒岛逃生小游戏.第一次使用Unity 3D实现,游戏过程和场景都不复杂,不过是一次很有启发也颇具成就的尝试!谢谢师哥辅导! 游戏内容很简单:玩家以第一人称视角根据线索找到金.银钥匙,寻找路线,打开各种门,找到小船,便可逃离荒岛. 在此我介绍制作思路,其中附上部分基础代码,最后演示游戏过程! 一.制作过程 1. 首先,我们在unity 3d中建立荒岛模型:树.草.土丘等,搜寻箱子.钥匙.木屋.石像.船等素材放置在岛中. 设置了天空盒材质:M