操作系统--总体概述
1.操作系统是什么?
OS是用户、用户程序与底层硬件的媒介;属于是一种特殊软件
主要目标:就是为用户提供一个方便的安全的操作环境(提供对底层硬件的抽象);为用户提供所有可能的服务,确保用户程序的正常运行以及错误处理。
注意:实现这些目标操作系统需要底层硬件提供支持。
OS具体的功能:管理计算机资源(硬件、软件、抽象的资源),负责资源分配管理
为用户提供各种复杂的、危险的服务,确保程序的正常执行以及处理各种异常状况。
2.操作系统的优点
去除了底层硬件对应用程序的控制;使得应用程序的编写更加简单
实现共享,公平和安全,实现更好的整体绩效
提出抽象模型:进程、线程模型
3.操作系统的发展历史
3.1 串行处理:手动加载的应用程序;程序员直接在硬件上面操作,并不存在所谓的操作系统。
3.2 简单批处理系统:
存在一个监护程序--功能类似于现代的操作系统,操作员将作业成批输入磁盘,
之后由监护程序负责该作业的内存分配,接着该作业被执行。CPU执行权在监护程序和作业之间切换。
此时为了更好的管理作业的执行:OS提供了--内存保护,定时器,中断,支持特权指令等功能。
3.3 多道批处理程序:为了提高CPU利用率,想到在内存中同时加载多个作业,CPU在多个作业之间进行
切换执行。为了支持多道程序,OS提供了内存管理、IO中断、DMA等功能。
3.4 分时系统:分时系统的提出主要是为了交互性;将CPU的时间划分成若干个片段,称为时间片。操作系统以时间片为单位,轮流为每个用户服务。
4.计算机结构
计算机在某种意义上是通信系统。数据在CPU,主存,各种外部设备之间传输。
5.操作系统如何工作以及基本的硬件支持
OS工作总结:操作系统的工作其实可以说是围绕着进程开展的,随着进程的执行,进程存储在内存中--产生出内存管理,进程与外部设备进行信息交互
产生出IO操作,内存存储是暂时性的,需要将必要的数据持久化存储--产生出持久化存储(文件系统和IO设备管理等);多个进程之间执行等
产生了进程执行管理,维护进程的正常执行--产生异常处理。
5.1 中断机制:通常是外部发生某些事情后,事件源发出中断请求信号给CPU,CPU响应这些事件并处理。
5.2 中断基本分类
程序中断:程序执行过程中产生的严重的错误情况,自身无法处理,需要借助操作系统的中断服务程序处理。eg:除0操作。
时钟中断:由处理器内部的计时器产生,允许操作系统以一定的规律进行某些操作。eg:时间片进程调度。
IO中断:由IO控制器产生,用来进行数据传输。
硬件失效中断:硬件运行过程中产生的异常。
注意:中断最初的提出是为了提高CPU的利用率;但同时也满足CPU能够对于外界的需求给予相应的处理。
5.2 CPU的执行模式
用户态:用户程序运行的模式,是有限制的运行,不允许执行有危险的指令。用户程序可以通过系统调用使用系统提供的服务。
内核态:操作系统内核运行的模式,可以执行任何指令,这样直接对硬件进行操作。
通过Mode bit--模式位来区分是用户态还是内核态:通常中断、trap、系统调用都可以导致用户态到内核态的切换。
进程运行在用户态,对于一些复杂、危险的、涉及底层资源的操作可以通过系统调用、中断进入操作系统内核态,由OS进行相应的处理。
区分用户态和内核态主要是为了系统的安全,稳定性考虑,同时也保证了程序的编写简单,正确执行等。
5.3 DMA--直接存取方式:使得主存与外设之间IO数据传输过程可以直接进行,不需要CPU的介入,CPU只需在开始和结束的时候进行部分的处理。
6.操作系统的扩展性
6.1. 硬件的发展对操作系统的发展会有很大的影响,可能由于硬件的发展,某些原来用软件实现的OS服务,可以直接使用硬件完成。
6.2 用户提出新的服务,操作系统需要实现这个服务。
6.3 操作系统在设计时候可能存在错误,需要对错误进行修正。
7.应用程序的并发设计
OS提供了并发执行的机制,用户程序如何高效的使用这个机制?大多数的程序可以划分为多个可并发执行的子任务,
子任务通常以进程或线程的形式实现,开发人员需要对程序的任务进行合理的划分,决定哪些子任务是异步执行,那些
子任务是同步执行的,只有这样才能实现一个比较好的并发程序。
8.计算机通电后加载操作系统过程