一、操作系统的定义和作用
1、什么是操作系统?
定义:简而言之,操作系统就是计算机的管家。它管理系统资源,控制程序执行,改善人机界面。并合理组织计算机工作流程,为用户能方便有效的使用计算机提供良好运行环境的一种系统软件。
2、为什么操作系统是基础运行平台?
第一,操作系统是最靠近硬件的一层软件,它把硬件裸机改造成为完善的虚拟机,使得机器功能得到扩展,运行环境得到改善,系统效率得到提高,安全性能得到保证;
第二,操作系统隔离其他上层软件,并为他们提供接口和服务,使得上层软件可以获得远较硬件所能提供的更多更强的功能上的支持。
综上,操作系统是软件系统的核心,与计算机硬件一起构成了各种软件的基础运行平台。
3、操作系统的作用有哪些?
①操作系统作为用户与计算机硬件系统之间的接口(软件接口),如下图。
用户可以通过三种方式使用计算机:
(1)命令方式——键盘直接操纵
(2)系统调用——程序包含系统调用
(3)图标、窗口方式——鼠标
②操作系统作为计算机系统资源的管理者。
(1)处理器管理:用于分配和控制处理器;
(2)存储器管理:主要负责内存的分配和回收;
(3)I/O设备管理:负责I/O设备的分配和操纵;
(4)文件管理(数据和程序信息):负责文件的存取、共享和保护。
③操作系统用作虚拟机/扩展机器。
裸机:完全无软件的计算机系统。
虚机器:覆盖了软件的机器成为虚机器或扩充机器。
二、操作系统资源管理技术
1、资源复用
1.1、空分复用共享
定义:把资源分割成更多、更小的单位供进程使用
1.2、时分复用共享
定义:不分割资源,而是进程在某一段时间内独占使用整个物理资源
1.2.1、时分独占式
定义:进程占用这类资源后,通常使用一个完整的周期后才会释放(如:磁带机、打印机)
1.2.2、 时分共享式
定义:进程占用这类资源后,随时可能会被剥夺,被另一个进程抡占使用(如:处理器)
作用:为了解决物理资源数量不足
2、资源虚拟
定义:对资源进行转化、模拟或整合,把物理上的一个资源变成逻辑上的多个对应物(或物理上的多个变成逻辑上的一个)的一类技术。
作用:为了解决物理资源数量不足,提高服务的能力和水平
3、资源抽象
定义:通过创建软件来屏蔽硬件资源物理特性和接口细节,简化对硬件的操作、控制和使用的一类技术
作用:处理系统的复杂性;
解决资源的易用性。
三、操作系统中的三个基础抽象
1、进程抽象
定义:对进入内存的执行程序在处理器上操作的状态集的一个抽象。
效果:让用户感到是自己独享处理器,从而,可为用户提供多任务操作系统和分时操作系统。
对应硬件:处理器
2、虚存抽象
定义:结合对内存和外存的管理,把一个进程的虚存中的内容存储在磁盘上,用内存作为磁盘的高速缓存,以此为用户提供比物理内存空间大得多的虚拟内存空间。
效果:让用户感觉独占了一个连续的地址空间,编写应用程序的长度不受物理内存的大小的限制。
对应硬件:内存
3、文件抽象
文件:文件就是字节序列,即由值0和值1组成的序列。所有的I/O设备,包括磁盘、键盘、鼠标、显示器都可以看成是文件。
定义:将文件中的字节映射到存储设备的物理块中,称为文件抽象
效果:让用户感觉到总能满足自己对设备上信息存取的需求,而且使用十分方便
对应硬件:设备
三种基础抽象的关系:
四、操作系统虚拟机及其组成
1、什么是操作系统虚拟机?
定义:通过软件模拟的具有完整硬件功能的,运行在一个完全隔离环境中的计算机系统
2、操作系统虚拟机的组成成分?
组成:虚处理器、虚拟内存、虚拟辅存、虚拟设备
五、操作系统的主要特性
1、并发性
并行性:指两个或多个事件在同一时刻发生。
并发性:指两个或多个事件在同一时间间隔内发生。
作用:发挥并发性能够消除系统中部件与部件的之间的相互等待,有效地改善系统资源利用率,改进系统的吞吐量,提高系统效率。
适用范围:只有进程(动态实体)能并发执行,程序(静态实体)不能并发执行
2、共享性
定义:指操作系统的资源可以被多个并发执行的进程所使用。
透明资源共享(同时共享资源):资源隔离与授权访问
独占资源共享:临界资源与独占访问
3、异步(随机)性
体现:多道程序运行环境下,多个并发执行的进程是以异步的方式运行的。
场景:①进程何时执行、暂停,怎样的速度向前推进,都是异步(随机)的;②程序运行发生错误和异常的时刻是异步(随机)的。③硬件和软件发生中断事件的时刻是异步(随机)的。....
带来的危险:有可能导致与时间有关的错误。
六、操作系统内核
定义:内核是作为可信软件来提供支持进程并发执行的基本功能和基本操作的一组程序模块。
地位:内核通常驻留于内核空间,运行在核心态,具有访问硬件设备和所有主存空间的权限,是仅有的能够执行特权指令的那部分程序。
作用:在内核的支撑下,机器功能得到扩展,进程运行环境得到改善,安全性得到保证,系统效率得到提高。
功能:中断处理、时钟管理、短程调度、原语管理
属性:①内核是由中断驱动的;②内核是不可抢占的;③内核是可以在屏蔽中断状态下执行;④内核可以使用特权指令
分类:单内核、微内核
单内核:将操作系统全部功能都放进内核中,内部又被分为若干个模块,并作为一个单一进程运行,具有唯一地址空间。
微内核:只将操作系统中最核心的功能的放入内核,包括IPC通信、地址空间管理、基本的调度,这些在内核态运行。而其他功能,如:文件系统、设备驱动、存储管理、网络等作为一个个处于用户态的进程而向外提供某种服务来实现,并且这些处于用户态的进程可以针对某些特定的应用和环境需求进行定制。有时,也称这些进程为服务器。
七、程序接口与系统调用
1、什么是系统调用(System call)?
概念:操作系统的功能通过一组称为系统调用的接口呈现给用户。内核提供一系列实现预定功能的内核函数,系统调用把应用程序的请求传达给内核,内核调用对应的内核处理函数完成请求所需的处理后,再将处理结果返回给应用程序。
定义:系统调用就是实现操作系统功能的一组接口。
地位:系统调用是应用程序获得操作系统服务的唯一途径;内核的主体的是系统调用的集合
2、系统调用的作用?
概念:系统调用充当一个中介的角色,把用户和硬件隔离开,应用程序通过系统调用才能请求系统服务和使用系统资源。
作用:①内核可基于权限和规则对资源访问进行裁决,保证系统安全性;②系统调用封装资源抽象,提供一致性接口,避免用户使用资源时可能发生的错误,且编程方便、效率高。
3、系统调用的实现要点?
①编写系统调用处理内核函数;
②设计一张系统调用入口地址表,每个入口地址都指向一个系统调用的处理内核函数,有的系统还包含系统调用自带参数个数;
③陷入处理机制需要开辟现场保护区,以保存发生系统调用时的处理器现场。
4、什么是程序接口(库函数)?
概述:尽管应用程序可以直接使用系统调用完成相关的功能,但系统调用的参数复杂、使用困难,所以操作系统提供了相应的程序接口,由它来屏蔽下层的复杂性,负责把操作系统的服务接口(即系统调用)封装成应用程序能直接使用的API。
定义:程序接口就是把系统调用封装成应用程序能直接使用的API,屏蔽了下层的复杂性,使得开发者能方便、有效的开发应用程序。
5、程序接口的作用?
作用:①屏蔽了下层的复杂性;②隐藏了访管指令的细节,使系统调用更像函数调用;③改动内核时,不影响程序使用的正确性
6、系统调用和程序接口的区别和联系?
①从应用程序使用角度看,系统调用和程序接口没有差别,而从实现角度看,两者有重大区别;
②程序接口(库函数)属于应用程序,在用户态运行,系统调用属于系统程序,在内核态运行;
③如果需要的话,用户可以替换库函数,但是通常不能替换系统调用。
7、应用程序、库函数、系统调用调用关系链
8、Linux系统程序、库函数、系统调用分层关系