Modern Operating System 第一章 笔记与解析

第一部分 笔记

1.什么是操作系统?

操作系统是一组主管并控制计算机操作,软硬件资源和用户基本服务的应用程序。

2.早期操作系统经历了漫长的发展,对应的操作系统和硬件分别是哪些?

第一代:真空管时代(无操作系统)

第二代:电子管时代(批处理系统)

第三代:集成电路时代(多道程序设计系统)

第四代:个人计算机时代(分布式操作系统)

3.OS/360 采用了哪些新技术?

1.集成电路。

2.系列计算机。

3.多道应用程序。

4.Multics系统采用了哪些新技术?

1.第一个成熟的分时系统。

2.大规模使用了动态链接和分层文件系统。

5.简述时间复用和空间复用

第二部分 习题解析

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

操作系统在内存中放有多个程序的程序设计方法。这些程序共享内存和其他计算机资源。

2.什么是SPOOLing?读者是否认为将来的高级个人计算机会把SPOOLing作为标准功能?
SPOOLING是设备池调度技术,由于cpu的速度远远快于io速度,所以Spooling由操作系统将IO文件暂存在存储介质中,再交给io设备进行输入或输出。需要。
3.在早期计算机中,每个字节的读写直接由CPU处理(即没有DMA)。对于多道程序而言这种组织方式有什么含义?
DMA作用是让外部存储设备可以直接向内存读写字节而无需通过cpu中断,可以大大节约cpu性能。DMA已经成为现代计算机的标配特性之一。
对于无DMA的应用而言,多道程序几乎没有必要,因为IO操作时cpu完全被占用l
4.系列计算机的思想在20世纪60年代由IBM引入进System/360大型机。现在这种思想已经消亡了还是继续活跃着?
这种思想在继续活跃着,例如iphone12和iphone13,对于不同的硬件,开发者无需编写不同的代码即可兼容运行,并且对于更快的硬件拥有性能提升。
5.缓慢采用GUI的一个原因是支持它的硬件的成本(高昂)。为了支持25 80列字符的单色文本屏幕应该需要多少视频RAM?对于1024×768像素24位色彩位 图需要多少视频RAM?在1980($5/KB)这些RAM的成本是多少?现在它的成本 是多少?
1)(25*80*1)2000字节ram 10美元
2)(1024*768*24/8)2359296字节ram 11520美元
6.在建立一个操作系统时有几个设计目的,例如资源利用、及时性、健壮性 等。请列举两个可能互相矛盾的设计目的。
例如资源利用和实时性,维持程序的实时响应可能带来大量不必要的计算资源开销。
7.下面的哪一条指令只能在内核态中使用?
a)禁止所有的中断。
b)读日期-时间时钟。
c)设置日期-时间时钟。
d)改变存储器映像。
acd
8.考虑一个有两个CPU的系统,并且每一个CPU有两个线程(超线程)。假
设有三个程序P0P1P2,分别以运行时间5ms10ms20ms开始。运行这些程
序需要多少时间?假设这三个程序都是100%限于CPU,在运行时无阻塞,并且一
旦设定就不改变CPU
取决于这些程序是怎么执行的
p0->p1->p2 (以及上述串行情况的全排列) 40ms
(p0,p1)->p2 30ms
(p0,p2)->p1 30ms
(p1,p2)->p0 25ms
9.一台计算机有一个四级流水线,每一级都花费相同的时间执行其工作,即
1ns。这台机器每秒可执行多少条指令?
10^9条指令
10.假设一个计算机系统有高速缓存、内存(RAM)以及磁盘,操作系统用
虚拟内存。读取缓存中的一个词需要2nsRAM需要10ns,磁盘需要10ms。如果缓
存的命中率是95%,内存的是(缓存失效时)99%,读取一个词的平均时间是多
少?
2ns*0.95+10ns*0.99*0.05+10ms*0.01*0.05=0.495+1.9+5000=5002(ns)
注(ms to ns 10^6)
11.一位校对人员注意到在一部将要出版的操作系统教科书手稿中有一个多次
出现的拼写错误。这本书大致有700页。每页50行,一行80个字符。若把文稿用
电子扫描,那么,主副本进入图1-9中的每个存储系统的层次要花费多少时间?对
于内存储方式,考虑所给定的存取时间是每次一个字符,对于磁盘设备,假定存
取时间是每次一个1024字符的盘块,而对于磁带,假设给定开始时间后的存取时
间和磁盘存取时间相同。

700*80*50=2800000个字节
2.8ms 寄存器
2800000*2=5.6ms 缓存
28ms内存
28000/1024 27s 硬盘
100+27 127s磁带
13.什么是陷阱指令?在操作系统中解释它的用途。
陷阱指令能让应用程序从用户态进入内核态,并进行相关操作。
14.陷阱和中断的主要差别是什么?
中断作用于硬件层面,而陷阱作用于操作系统层面。
15.在分时系统中为什么需要进程表?在只有一个进程存在的个人计算机系统
中,该进程控制整个机器直到进程结束,这种机器也需要进程表吗?
需要cpu在应用程序间进行转换时记录相应的信息,不需要,因为只有一个进程。
16.说明有没有理由要在一个非空的目录中安装一个文件系统?如果要这样
做,如何做?
一般没有必要,如果需要将被装配目录下的文件复制到装配目录下使用时,这么搞也可以。
17.在一个操作系统中系统调用的目的是什么?
提供相关封装给用户程序,用于调用操作系统相关的功能。
19. count=write(fd,buffer,nbytes); 调用中,能在count中而不是nbytes中返回值吗?如果能,为什么?
不能,如果写入错误的话,返回的nbytes可能有误,使用count方便进行错误处理。
20.有一个文件,其文件描述符是fd,内含下列字节序列:31415 9,26535。有如下系统调用: lseek(fd,3,SEEK_SET); read(fd,&buffer,4); 其中lseek调用寻找文件中的字节3。在读操作完成之后,buffer中的内容是什 么?
1 5 9 2
21.假设一个10MB的文件存在磁盘连续扇区的同一个轨道上(轨道号: 50)。磁盘的磁头臂此时位于第100号轨道。要想从磁盘上找回这个文件,需要 多长时间?假设磁头臂从一个柱面移动到下一个柱面需要1ms,当文件的开始部 分存储在的扇区旋转到磁头下需要5ms,并且读的速率是100MB/s
50+5+10/100*1000=155ms
22.块特殊文件和字符特殊文件的基本差别是什么?
块特殊文件包括块信息,可以使用块信息进行随机定位读写,字符特殊文件不可以。
24.在分布式系统中,客户机-服务器模式很普遍。这种模式能用在单个计算 机的系统中吗?
可以,类似于Spark本机伪分布式部署时,可以使用pyspark调取Spark服务,此时就是service-client模式。
25.对程序员而言,系统调用就像对其他库过程的调用一样。有无必要让程序 员了解哪一个库过程导致了系统调用?在什么情形下,为什么?
就程序功能实现上没有必要,在性能上,所有系统调用都将导致用户态和内核态的切换开销。在多用户系统中,系统可能在系统调用完成前调度其他进程,带来更大的开销。
27.可移植的操作系统是能从一个系统体系结构到另一个体系结构的移动不需 要任何修改的操作系统。请解释为什么建立一个完全可移植性的操作系统是不可 行的。描述一下在设计一个高度可移植的操作系统时你设计的高级的两层是什么 样的。
意味着该操作系统可以无视芯片架构,无视硬件差别,执行基于所有指令集和语言的程序,显然它是不可能的。对于一个高度可以移植的操作系统中,程序应该被分为两部分,机器相关层和机器独立层,机器相关层为每一个架构单独实现,机器独立层屏蔽硬件细节。这样通过机器独立层调库就能实现移植。
28.请解释在建立基于微内核的操作系统时策略与机制的分离带来的好处。
       在用户层面能够更加灵活地实现机制和策略
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值