读书笔记 现代操作系统——第一章 引论

一、什么是操作系统
简单的来说计算机安装了一层软件,称为操作系统。
软件中最基础的部分是操作系统,它运行在内核态, 在这个模式中操作系统具有对所有硬件的安全访问。
软件的其余部分运行在用户态。在用户态下,只使用了机器指令中的一个子集。
下图是操作系统的位置,它运行在裸机之上,为其所有的软件提供基础的运行环境。
图片说明
很难给出操作系统的准确定义。操作系统是一种运行在内核态的软件——尽管这个说法并不总是符合事实。部分原因是操作系统有两个基本上独立的任务,即为应用程序员提供一个资源集的清晰抽象,并管理这些硬件资源而不仅仅是一对硬件。另外还取决于从什么角度看待操作系统。
操作系统的功能
1.作为扩展机器的操作系统——隐藏硬件,呈献给程序良好、清晰、优雅、一致的接口。(操作系统的实际用户是应用程序,当然是通过应用程序员)程序直接和操作系统提供的这些接口打交道。
2.作为资源管理者的操作系统
资源管理包括以下两种不同的方式来实现共享资源
1.时间上共享:当一种资源在时间上共享的时候,不同的程序或用户轮流使用它(每个程序或用户都有使用这个资源的一个规定的时间片)。先是第一个获得资源的使用,然后下一个,以此类推(例如:若在操作系统上只有一个CPU,而多个程序需要在CPU上运行,操作系统则首先把该CPU分配给某个程序,在它运行足够长的时间后,另外一个程序进入CPU,以此类推)
2.空间上共享:每个客户都得到资源的一部分,从而取代了客户排队。(例如:通常在若干个运行程序之间分割内存,这样每个运行程序都可以同时驻入内存,这样就提高了CPU的效率)

二、操作系统的历史发展
图片说明
三、计算机的硬件介绍
一台简单的个人计算机可以抽象为类似于下图中的模型。CPU、内存以及I/O设备都由一条系统总线连接起来并通过总线与其他设备通讯。
图片说明

1. 处理器
处理器是计算机最重要的部分,就相当于人的大脑一样,它会从计算机的内存中取出指令去执行。
在每个CPU基本周期中首先从内存中取出指令,然后进行解码分析指令的类型和操作数,然后再去执行,以此类推。程序按照这种方式被执行完成。
每一个CPU都有一套自己的指令集,由于用来访问内存以得到指令或数据的时间要比执行指令花费的时间长度的多,所以CPU内部都有一些用来保存关键变量和临时数据的寄存器。这样,通常在指令集中可以提供一些将寄存器中的数据调入内存的指令。除了一些用来保存临时结果和变量的通用寄存器之外,还有一些只对程序员可见的专用寄存器。

- 专用寄存器的分类:
    - 程序计数器:它保存了将要取出的下一条指令的内存地址,在指令取出后,程序计数器就被更新指向后继的指令。
    - 堆栈指针:它指向内存当前栈大的顶端,该栈包含了每个执行过程的栈帧。一个过程中的栈帧中保存了有关的的输入参数、局部不变量以及那些没有保存在寄存器中的临时变量。(函数运行时堆栈)
    - 程序状态字寄存器:这个寄存器包含了条件码位、CPU优先级、模式(用户态或者内核态),以及其他控制位
对操作系统来说,它必须知道所有的寄存器。在时间共享CPU中,操作系统经常会终止正在运行的某个程序启动另外一个程序,当操作系统去终止某个程序的时候,必须将这个程序中的所有寄存器值保存起来,以便再次启动改程序时,可以把这些寄存器重新装载。

——CPU的读取指令机制:
流水线机制:一个CPU可以有单独的取指单元、解码单元和执行单元,于是当他执行指令n的时候,还可以对指令n+1解码,并且读取指令n+2。
超标量CPU:这种机制中有多个执行单元,例如:一个CPU用于整数算数运算,一个CPU用于浮点数算数运算,一个CPU用于布尔运算。两个或更多的指令同时被取出、解码并装入暂存缓冲区中知道它们执行完毕。只要有一个执行单元空闲,就检查保持缓冲区中是否还有可处理的指令,如果有,就把指令从缓冲区中移出并执行。这种设计存在一种隐含的作用,即程序的指令经常不会按照顺序执行。
图片说明
图片说明
CPU的模式:

1. 用户态
        2. 内核态

可以通过TRAP指令将用户态切换成内核态,并启用操作系统。当在工作完成之后,在系统调用后面的指令把控制权返回给用户程序。
多线程和多核芯片:
多线程允许CPU保持两个不同的线程状态,然后再纳秒级别的时间尺度内来回切换(线程是一种轻量级进程)。多线程并不会真正的并行处理,在一个时刻只有一个进程在运行,但是线程切换的时间则减少到纳秒数量级别。
每个线程就像是一个单独的CPU。
2.存储器
存储器是计算机第二种最主要的器件,存储器是采用一种分层的结构,顶层的存储器速度较高,容量较小,与底层的存储器相比每位成本较高,其差别往往是十亿数量级。
图片说明
1.寄存器:和CPU一样快,32为CPU中容量为32x32位,64位CPU中为64x64位,小于1KB
2.高速缓存:由硬件控制。主存被分割成高速缓存行,大小为64自己,地址0至63对应高速缓存行0,地址64至127对应高速缓存行1,以此类推。
L1缓存:L1缓存总是在CPU中,通常用来将已解码的指令调入CPU的执行引擎。典型的L1缓存大小为16KB
L2缓存:用来存放进来使用过的若干兆字节的内存字
区别:对于L1缓存的访问不存在任何延时,对于L2缓存的访问会延时1或2个时钟周期。
3.主存:系统存储的主力。通常称主存为随机访问存储器(RAM)
4.磁盘:磁盘是一种机械装置,因此在磁盘上随机访问数据时会较慢。但是容量较大。 3.I/O设备
I/O设备包括两个部分:设备控制器和设备本身
1.设备控制器:控制器是插在电路板上的一块芯片或一组芯片,这块电路板物理地控制设备,它从操作系统接受命令,例如:从设备读数据并且完成对数据的处理。
2.设备本身:设备本身有一个相对简单的接口
实现输入输出的三种方式:
1.用户向程序发出一个系统调用,内核将其翻译成一个对应的设备驱动程序的过程调用。
2.设备驱动程序启动设备并且让该设备在操作完成时发出一个中断。
3.为I/O使用一种特殊的直接存储器访问(DMA)芯片,它可以控制在内存和某些控制器之间的位流,无序持续CPU的干预。
4.总线
其实总线就相当于一条公路,只不过这条公路上运输的是计算机各个功能部件之间传送的信息。公路的宽度说明了可以同时传输的数据的数量,公路越宽,也就是说总线宽度越大传输性能就越好。
总线可以分为三类:
1.数据总线:传输数据
2.地址总线:出书数据地址
3.控制总线:传输控制信号
四、有哪些操作系统
图片说明
五、操作系统结构
图片说明

#笔记##读书笔记#
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务