《操作系统》第1章:操作系统概述
第1章:操作系统概述
1.1 操作系统概述
操作系统的基本特征:并发、共享、虚拟、异步。最基本特征:并发和共享。
操作系统可粗分为:硬件、操作系统、应用程序、用户。
操作系统是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源分配,以提供给用户和其他软件方便的接口和环境的程序集合,是计算机系统中最基本的系统软件。
并发性是指若干事件在同一时间间隔内发生,并行性是指若干事件在同一时刻发生。引入进程的目的是使程序能并发执行。操作系统的并发性是通过分时得以实现。
并行性是指系统具有同时运算或操作的特性,在同一时刻完成两种或两种以上的工作,并行性需要硬件的支持。
资源共享即共享,是指系统中的资源可供内存中多个并发执行的进程共同使用,分为互斥共享方式和同时访问方式。程序的并发是资源共享的前提和条件。
把在一段时间内只允许一个进程访问的资源称为临界资源或独占资源。
虚拟是指把一个物理上的实体变为若干个逻辑上的对应物。利用多道程序设计技术,把一个物理上的CPU虚拟为多个逻辑上的CPU,称为虚拟处理器。
操作系统虚拟技术:时分复用技术,如处理器的分时共享;空分复用技术,如虚拟存储器。
操作系统主要向用户提供命令接口和程序接口,以及图形接口。
操作系统作为计算机系统资源的管理者:处理机管理、存储器管理、文件管理、设备管理。
进程管理主要功能:进程控制、进程同步、进程通信、死锁处理、处理机调度。
存储器管理主要包括:内存分配、地址映射、内存保护与共享、内存扩充。
文件管理包括:文件存储空间管理、目录管理、文件读写管理和保护。
设备管理主要包括:缓冲管理、设备分配、设备处理和虚拟设备。
操作系统提供的接口:
命令接口:用户利用这些操作命令来组织和控制作业的执行。
程序接口:编程人员可以使用它们来请求操作系统服务。
命令接口按作业控制方式分为:
联机命令接口(交互式命令接口):适用于分时或实时系统的接口。
脱机命令接口(批处理命令接口):适用于批处理系统。
程序接口:由一组系统调用命令(简称系统调用,也称广义指令)组成。
GUI(图形用户界面)最终是通过调用程序接口实现的。
库函数是高级语言中提供给系统调用对应的函数,库函数属于应用程序而非系统调用,是系统调用的上层。
顺序性是单道程序设计的基本特征。引入多道程序设计后,程序的执行就失去封闭性和顺序性。
库函数与系统调用的区别与联系
库函数是语言或应用程序的一部分,可以运行在用户空间中。而系统调用是操作系统的一部分,是内核提供给用户的程序接口,运行在内核空间中,而且许多库函数都会使用系统调用来实现功能。没有使用系统调用的库函数,执行效率比系统调用高,因为使用系统调用时,需要上下问的切换以及状态的转换(由用户态转向内核态)。
互斥共享和同时共享
互斥共享是因为在一段时间内只能满足一个请求,否则就会出现严重问题。同时共享通常要求一个请求分几个时间片段间隔地完成与连续完成的效果相同。
通道是控制输入输出的设备。
系统调用是操作系统提供给应用程序使用内核功能的接口,只能通过用户程序间接使用。
库函数是高级语言中提供的与系统调用对应的函数,目的是隐藏『访管』指令的细节,使系统调用更为方便、抽象。库函数属于用户程序而非系统调用,是系统调用的上层。
广义指令就是系统调用命令,命令解释器属于命令接口,shell指命令解析器,属于命令接口。系统中的缓存全部由操作系统管理,对用户是透明的,操作系统不提供管理系统缓存的系统调用。
引入多道程序设计后,程序的执行就失去了封闭性和顺序性。顺序性是单道程序设计的基本特征。
库函数与系统调用的区别与联系
库函数是语言或应用程序的一部分,可以运行在用户空间中。系统调用使操作系统的一部分,是内核提供给用户的程序借口,运行在内核空间中,,而且许多库函数都会使用系统调用来实现功能。没有使用系统调用的库函数,执行效率通常比系统调用高,因为使用系统调用时,需要上下文的切换以及状态的转换(由用户态转向核心态)。
1.2 操作系统的发展与分类
手工操作系统:独占计算机资源、资源利用率低、CPU等待手工操作,CPU利用不充分
单道批处理系统:高效利用CPU的资源;自动性、顺序性、单道性
多道批处理系统:多道、宏观上并行、微观上串行;优点是资源利用率高,缺点是用户响应的时间长,不提供人机交互能力。
分时操作系统:
同时性:允许多个终端用户同时使用一台计算机
交互性:用户能够方便地与系统进行人-机对话
独立性:系统中多个用户可以彼此独立地进行操作,互不干扰
及时性:用户请求能在很短时间内获得响应
实时操作系统:及时性、可靠性,交互性不如分时
在实时操作系统的控制下,计算机系统接收到外部信号后及时进行处理,并且要在严格的时限内处理完接收的事件。
网络操作系统:服务于计算机网络,集中控制方式
分布式操作系统:建立在网络早做系统上,控制功能均为分布式,分布性和并行性
个人计算机操作系统:使用最广泛的操作系统
操作系统的基本类型:批处理系统、分时系统、实时系统。
分布式操作系统与网络操作系统的本质上的不同在于分布式操作系统中,若干太计算机相互协同完成同一任务。
批处理操作系统、分时操作系统、实时操作系统的特点:
批处理操作系统的用户脱机使用计算机,作业是成批处理得,系统内多道程序并发执行,交互能力差
分时操作系统可以让多个用户同时使用计算机,人机交互性较强,具有每个用户独立使用计算机的独占性,系统响应及时。
实时操作系统能对控制对象做出及时反应,可靠性高,响应及时,但资源利用率较低。
脱机技术用于解决独占设备问题,虚拟技术与交换技术以多道程序设计技术为前提,多道程序设计技术由于同时在主存中运行多个程序,在一个程序等待时,可以去执行其他程序,因此提高了系统资源的利用率。
实时操作系统必须在被控制对象规定时间内处理来自外部的事件。
实时系统的进程调度通常采用抢占式的优先级高者优先算法。静态页式管理与代码可重入与系统响应时间无关。
1.3 操作系统的运行环境
特权指令是指计算机中不允许用户直接使用的指令。
操作系统内核:
时钟管理:操作系统需要通过时钟管理,向用户提供标准的系统时间;通过时钟中断的管理,可以实现进程的切换。
中断机制:引入中断机制的初衷是提高多道程序运行环境中CPU的利用率。
原语:处于操作系统的最底层,是最接近硬件的部分;这些程序的运行具有原子性,这些程序的的运行时间都较短,而且调用频繁。
系统控制的数据结构及处理:核心态指令实际上包括系统调用类指令和一些针对始终、中断和原语的操作指令。
运行用户态的CPU转为核心态通过硬件实现。
进程管理:进城状态管理、进程调度和分派、创建与撤销进城控制块等。
存储器管理:存储器的空间分配和回收、内存信息保护程序、代码对换程序等。
设备管理:缓冲区管理、设备分配和回收等。
中断(外中断)指来自CPU执行指令以外的事件的发生。时钟中断表示一个固定的时间片已到,让处理机处理计时、启动定时运行的任务等,这类中断通常是与当前程序运行无关的事件,即它们与当前处理机运行的程序无关。
异常,也称内中断、例外或陷入,指源自CPU执行指令内部的事件,如程序的非法操作码、地址越界、算术溢出、虚存系统的却也以及专门的陷入指令引起的事件。
系统调用是用户在程序中调用操作系统所提供的一些子功能,系统调用可以被看做特殊的公共子程序。
系统调用按功能分类:
设备管理:完成设备的请求货释放,以及设备启动等功能。
文件管理:完成文件的读、写、创建、删除等功能。
进城控制:完成进程的创建、撤销、阻塞、唤醒等功能。
进程通信:完成进城之间的消息传递或信号传递等功能。
内存管理:完成内存的分配、回收以及获取作业占用内存区大小及初始等功能。
系统调用运行在系统的核心态,通过系统调用的方式来使用系统,保证系统的稳定性和安全性,防止用户随意更改或访问系统的数据或命令。系统调用命令是由操作系统提供的一个或多个字程序模块实现的。
从核心态转向用户态由一条指令实现,这条指令是特权指令,一般是中断返回指令。
程序的运行由用户态转到核心态用访管指令,访管指令在用户态使用,所以不是特权指令。
1.4 操作系统的体系结构
大内核系统将操作系统的主要功能模块都作为一个紧密联系的整体运行在核心态,从二位应用提供高性能的系统服务。
微内核结构将内核中最基本的功能(如进程管理等)保留在内和,将不需要在核心态执行的功能移到用户态执行,服务之间使用进程间通信机制进行信息交换,降低内内核的设计复杂性,添加系统服务时,不必修改内核。
微内核结构有效地分离了内核与服务、服务与服务,使得它们之间的接口更加清晰,维护的代价大大降低,各部分可以独立地优化和演演进,从而保证了操作系统的可靠性。微内核最大的问题是性能问题。
并行性与并发性的区别与联系
并行性是指两个活多个事件在同一时刻发生。并发性是指两个或多个事件在同一时间间隔内发生。
特权指令与非特权指令
特权指令是指有特殊权限的指令,只能用于操作系统或其他系统软件,不能直接提供给用户使用。特权指令必须在核心态执行。为防止用户程序中使用特权指令,用户态下只能使用非特权指令,核心态下可以使用全部指令。从用户态转为核心态的唯一途径是中断或异常。
访管指令与访管中断
访管指令是一条可以在用户态下执行的指令。在用户程序中,因要求操作系统提供服务而有意识地使用访管指令,从而产生一个中断事件(自愿中断),将操作系统转换为核心态,称为访管中断。访管指令由访管中断产生,程序员使用访管指令向操作系统请求服务。访管指令不是特权指令。