现代操作系统
封面上的趣图
什么是计算机系统?
现代计算机系统由一个或多个处理器、主存、磁盘、打印机、键盘、鼠标、显示器、网络接口以及各种其他输入/输出设备组成。
什么是操作系统?
操作系统是一个软件,它的任务是为用户程序提供一个更好、更简单、更清晰的计算机模型,并管理组成计算机系统的各种设备。
操作系统的两个功能?
1. 扩展机器(自顶向下的观点)
操作系统是计算机的扩展,是将操作系统当做计算机对外的接口。对外包括对应用程序,对程序员,对用户。操作系统对计算机进行“化妆”,将计算机“丑陋晦涩”的硬件对外隐藏,而向外呈现界面友好清晰,更易理解的操作系统。
2. 资源管理(自底向上的观点)
操作系统将计算机资源(处理器,存储器以及I/O设备等)进行抽象以及管理。
将CPU处理抽象为进程,将内存抽象为地址空间,磁盘抽象成文件。而这一切抽象都是为了实现多道程序设计,即可以在一个计算机上同时运行多个互不干扰程序。
操作系统在相互竞争的程序之间有序地控制处理器,存储器以及I/O设备的分配。
什么是多道程序设计技术?
多道程序设计技术中的多道指的是多个程序,多道技术的实现是为了解决多个程序竞争或者说共享同一个资源(比如cpu)的有序调度问题,解决方式即多路复用,多路复用分为时间上的复用和空间上的复用。
资源管理的两种方式实现多路复用(共享)资源?
1. 时间复用
当一个程序在等待I/O时,另一个程序可以使用cpu。如果内存中可以同时存放足够多的程序,则cpu的利用率可以接近100%。
2. 空间复用
将内存分为几部分,每个部分放入一个程序,这样,同一时间内存中就有了多道程序。
空间上的复用最大的问题是:
程序之间的内存必须分割,这种分割需要在硬件层面实现,由操作系统控制。如果内存彼此不分割,则一个程序可以访问另外一个程序的内存,那么,
首先丧失的是安全性,比如你的qq程序可以访问操作系统的内存,这意味着你的qq可以拿到操作系统的所有权限。
其次丧失的是稳定性,某个程序崩溃时有可能把别的程序的内存也给回收了,比方说把操作系统的内存给回收了,则操作系统崩溃。
计算机硬件介绍
处理器
计算机的大脑,主要工作是从内存中取指、解码、执行。
每个cpu都有其一套可执行的专门指令集。
cpu有哪些专门寄存器,对程序员是可见的?
-
程序计数器(PC):保存了将要取出的下一条指令的内存地址。
-
堆栈指针(SP):指向内存中当前栈的顶端,该栈含有已经进入但是还没有退出的每个过程的一个框架。
-
程序状态字(PSW):包含了条件码位(由比较指令设置),CPU优先级,模式(用户态或内核态),以及各种其他控制位。存在一个二进制位控制CPU的工作模式,即内核态和用户态。不同模式对硬件的访问权限不同。
什么是cpu的流水线设计?
CPU具有的同时取出多条指令的机制,称为流水线。
取指IF,译码ID,执行EX
什么是超标量CPU?
一个CPU有多个执行单元,例如一个用于整数算数运算,一个用于浮点算数运算,而另一个用于布尔运算。两个或更多的指令被同时取出/解码并装入一个保持缓冲区中,直至它们执行完毕。只要有一个执行单元空闲,就检查保持缓冲区中是否还有可处理的指令,如果有,就把指令从缓冲去中移出并执行。
超标量CPU设计会存在一种什么样的作用?
程序的指令经常不按顺序执行。参考:乱序执行技术
多数CPU都有的两种模式以及区别?
- 内核态 :当在内核态运行时,CPU可以执行指令集中的全部指令,并且使用硬件的每种功能。 操作系统在内核态运行,从而可以访问整个硬件。
- 用户态:用户程序在用户态下运行,仅允许执行整个指令集的一个子集和访问所有功能的一个子集。一般而言,用户态中有关IO和内存保护的所有指令是禁止使用的。包括将PSW中的模式位设置成内核态也是不允许的。
什么时候使用系统调用以及系统调用是怎么回事?
用户程序只在用户态下运行,有时需要访问系统核心功能,这时通过系统调用接口使用系统调用。
-
定义:在计算机中,系统调用(英语:system call),又称为系统呼叫,指运行在用户空间的程序向操作系统内核请求需要更高权限运行的服务。 系统调用提供了用户程序与操作系统之间的接口。大多数系统交互式操作需求在内核态执行。如设备IO操作或者进程间通信。
-
原理:操作系统中的状态分为管态(内核态)和目态(用户态)。特权指令:一类只能在核心态下运行而不能在用户态下运行的特殊指令。不同的操作系统特权指令会有所差异,但是一般来说主要是和硬件相关的一些指令。访管指令:本身是一条特殊的指令,但不是特权指令。(trap指令)。基本功能:“自愿进管”,能引起访管异常。
- 过程:TRAP指令把用户态切换成内核态,并启用操作系统。当有关工作完成之后,在系统调用后面的指令把控制权返回给用户程序。
CMOS是什么存储器?
在计算机领域,CMOS常指保存计算机基本启动信息(如日期、时间、启动设置等)的芯片。它是易失的。CMOS存储器和递增时间的时钟电路由一块小电池驱动,所以,即使计算机没有上电,时间也仍然可以正确的更新。
磁盘(硬盘)
扇区、磁道、柱面、磁头、盘面各是什么概念?
-
磁头(head)数:每个盘片一般有上下两面,分别对应1个磁头,共2个磁头,实现数据的存取
-
磁道(track):当磁盘旋转时,磁头若保持在一个位置上,则每个磁头都会在磁盘表面划出一个圆形轨迹,这些圆形轨迹就叫做磁道,从外边缘的0开始编号,根据磁化方向来存数数据0和1
-
柱面(cylinder):不同盘片的相同编号的磁道构成的圆柱面就被称之为柱面,磁盘的柱面数与一个盘面上的磁道数是相等的
-
扇区(sector):每个磁道都别切分成很多扇形区域,每个磁道的扇区数量相同,每个扇区大小为512字节
-
圆盘(platter):就是硬盘的盘片,为实现大容量,一般都是多个
硬盘的容量=柱面数×磁头数×扇区数×512(字节数)
IO设备一般包含哪两部分?
设备控制器和设备本身。
控制器的作用?
为操作系统提供一个简单的接口(也是很复杂的)。比如磁盘控制器可以接受一个命令从磁盘2读出11206号扇区,然后控制器把这个线性扇区号转换为柱面、扇区和磁头。。。
控制器为了完成这些工作,在控制器中经常安装一个小的嵌入式计算机,该嵌入式计算机运行为执行这些工作而专门编好的程序(Firmware)。
什么是设备驱动程序?
专门与控制器对话,发出命令并接受响应的软件,称为设备驱动程序(device driver)。
实现输入和输出的三种方式?
1、忙等待
2、中断
3、使用直接存储器访问芯片(DMA)
解答待完善。。。