目录
1.手工操作阶段(Manual operation phase)
3.分时操作系统(Time-sharing operating system)(时间片实现)(交互性)
4.实时操作系统 (Real-time operating system)(硬、软)(及时可靠)
1.内核态和用户态(Kernel mode and user mode):
2.中断和异常(Interruptions and exceptions)
一.操作系统概念、特征、功能和提供的服务
1>操作系统概念
操作系统是指控制和管理整个计算机硬件和软件资源、合理组织调度计算机的工作和资源分配、进而为用户和其他软件提供接口与环境的程序集合。操作系统是最基本的系统软件。
2>操作系统最基本的特征是并发、共享、虚拟、异步。
1.并发(concurrent)是指两个或多个事件在同一时间间隔内发生。
2.共享(share)是指系统中的资源可供多个并发执行的进程共同使用。资源共享可分为互斥共享和同时访问。
3.并发和共享是操作系统最基本的两个特征,二者互为存在条件。若进程串行,则不会有资源共享的说法;若要实现资源共享,则要通过进程并发来实现。
4.虚拟。时分复用(cpu的分时共享)、空分复用
5.异步(asynchronous)注:同步(synchronous)。在程序并发执行的过程中,进程的执行并不是一走到底的,而是走走停停,已不可预知的速度推进。
3>操作系统的功能和提供的服务
1.作为计算机系统资源的管理者:进程管理、文件管理、存储器管理、IO管理
2.为用户提供使用计算机硬件的接口。
命令接口:脱机命令接口和联机命令接口。
程序接口(例如系统调用!!!也称为广义指令,是操作系统提供给应用程序和编程人员的接口)
GUI(图形接口)
扩充:用户与操作系统通讯的接口有:命令解释器、Shell、广义指令。前两者属于命令接口,第三个属于程序接口。
3.扩充机器。
4>例题
简答:说明库函数和系统调用的区别和联系。
答:
区别:库函数是语言或应用程序的一部分,可以运行在用户程序中。而系统调用是操作系统的一部分,只能运行在内核态。
联系:许多库函数会用到系统调用来实现功能。而且未使用系统调用的库函数的执行效率会比调用了系统调用的库函数更高,因为不需要进行上下文的切换。
二.操作系统的发展和分类
四种技术:脱机技术(解决用户独占问题)、虚拟技术、交换技术(设计多道程序设计)、多道程序设计技术
1.手工操作阶段(Manual operation phase)
缺点:(1)用户独占全机;(2)CPU等待手工操作,利用十分不充分。
2.批处理系统 (开始出现操作系统)(CPU利用率的提升)
手工操作和单道批系统均不需要程序的并发进行,因此都没有操作系统
1.单道批处理系统:
主要特征:顺序性、单道性
缺点:高速的CPU与低速的I/O之间的矛盾
2.多道批处理系统:
主要特征:多道性、宏观上并行,微观上串行
优点:资源利用率高,多道程序共享资源;系统吞吐量大,
缺点:用户相应时间长,不提供人机交互能力
3.二者相比:多道批处理通过组织作业使得CPU总有一个作业可以执行,因此提升了系统的吞吐量、CPU的利用率、和I/O设备利用率,但系统要付出额外的开销来组织作业和切换作业
3.分时操作系统(Time-sharing operating system)(时间片实现)(交互性)
主要特征:同时性(多个用户可以基本同时使用计算机)、
交互性:用户可通过终端直接与机器对话
独立性:系统中多个用户可以独立的使用计算机而互不干扰
及时性:用户请求能在很短时间内得到回应
缺点:对一些紧要事件,不能插队进行
4.实时操作系统 (Real-time operating system)(硬、软)(及时可靠)
主要特点:及时性、可靠性
5.网络操作系统和分布式计算机系统
网络系统特征:网络中各种资源的共享
分布式系统的特征:分步性和并行性
三.操作系统的运行环境(工作模式)
1.内核态和用户态(Kernel mode and user mode):
一种是内核程序;另一种是应用程序。
内核大致包括四方面的内容:1.时钟管理 2.中断机制 3.原语 4.系统控制的数据结构及处理
2.中断和异常(Interruptions and exceptions)
定义
CPU可通过中断来进行状态切换。中断包括外中断(来自CPU指令以外的事件的发生如I/O完成、时间片到)、异常(也称内中断、陷入。指源自CPU执行命令内部的事件,如非法操作码、地址越界、算术溢出、缺页等,内中断不能被屏蔽,一旦出现应当立即处理)分为故障、陷阱和终止三种,异常处理后会返回到异常发生指令继续执行或终止
中断的执行过程
前三步均由硬件完成,后续由中断服务程序完成
1.关中断。(在对现场进行保护前,防止CPU响应更高级的中断请求)
2.保存断点。(程序计数器PC保存)
3.中断服务程序寻址。(找到中断服务程序的地址放入PC)
4.保存现场和屏蔽字。(中断服务程序先将现场保存)
5.开中断(允许更高级请求响应)
6.执行中断服务程序
7.关中断
8.恢复现场和屏蔽字
9.开中断和中继返回
操作系统必须提供中断功能,以便进行特权指令的调用
3.系统调用(System calls)
用户程序执行“陷入”指令(trap指令或者“访管指令”)来发起系统调用,把CPU的使用权交给操作系统内核程序,之后操作系统内核程序对系统调用请求做出处理,再把CPU使用权还给用户。
(双模式的目的:)
用户程序不能直接执行对系统影响非常大的操作,必须通过系统调用的方式请求操作系统内核程序代为执行,以保证系统的稳定性和安全性,防止用户随意更改或访问重要的系统资源。
状态切换:
用户态到内核态:使用访管指令。访管指令在内核态进行使用,因此不是特权指令。
( 系统调用、中断、用户程序发生错误等)
内核态到用户态:也有指令实现,但这个指令在内核态完成,因此是特权指令
通用操作系统:时间片轮转调度
四.操作系统体系结构(设计模式)
操作系统的核心态应该提供什么服务、怎样提供服务?有关这一问题的回答形成了两个主要的体系结构:宏内核和微内核。
一、宏内核(Monolithic Kernel)
优点:将操作系统的主要功能模块都作为一个紧密联系的整体运行在核心态,从而为应用提供高性能系统服务。
缺点:但随着设计规模的增大,需要操作系统提供的服务越来越多,接口形式越来越复杂,操作系统规模急剧增大,定义清晰的层次间接口非常困难,复杂的交互关系也是层次间的界限变得极其模糊。为此宏内核又分化出模块化和分层化两个概念。
二、微内核(Micro Kernel)
将内核中最基本的功能保留在内核,将不需要在核心态执行的功能转移到用户态。
优点:降低内核设计的复杂性,有效的分离了内核与服务。维护内核的代价大大降低,各部分可以独立改进,保证了操作系统的可靠性。
缺点:需要频繁在内核态和用户态进行切换,增大开销
三、例题
模块化内核方法在什么方面类似于分层方法?它与分层的方法有哪些不同?
答:模块化内核方法要求子系统通过精心构建的接口相互交互,这些接口通常很窄(就向外部模块公开的功能而言)。分层核方法在这方面也类似。然而,分层内核对子系统进行了严格的排序,这样底层的子系统就不允许调用与上层子系统对应的操作。在模块化-内核方法中没有这样的限制,其中模块可以自由地调用彼此,没有任何约束。