1.1、操作系统的概念、特征、功能和结构
1、操作系统的概念
在信息化时代,软件被称为计算机系统的灵魂。而作为软件核心的操作系统,已经与现代计算机系统密不可分、融为一体。计算机系统自下而上可粗分为四个部分:硬件、操作系统、应用程序和用户。操作系统管理各种计算机硬件,为应用程序提供基础,并充当计算机硬件和用户的中介。
硬件,如中央处理器、内存、输入输出设备等,提供了基本的计算资源。应用程序,如字处理程序、电子制表软件、编译器、网络浏览器等,规定了按何种方式使用这些资源来解决用户的计算问题。操作系统控制和协调各用户的应用程序对硬件的使用。
综上所述,操作系统是指控制和管理整个计算机系统的硬件和软件资源,并合理的组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境集合。计算机操作系统是随着计算机研究和应用的发展逐步形成并发展起来的,它是计算机系统中最基本的系统软件。
2、操作系统的特征
操作系统是一种系统软件,但与其他的系统软件和应用软件有很大的不同,他有自己的特殊性即基本特征,操作系统的基本特征包括并发、共享、虚拟和异步。这些概念对理解和掌握操作系统的核心至关重要,将一直贯穿于各章节中。
(1) 并发
并发是指两个或多个事件在同一时间间隔内发生,在多道程序环境下,一段时间内宏观上有多个程序在同时执行,而在同一时刻,单处理器环境下实际上只有一个程序在执行,故微观上这些程序还是在分时的交替进行。操作系统的并发是通过分时得以实现的。操作系统的并发性是指计算机系统中同时存在多个运行着的程序,因此它具有处理和调度多个程序同时执行的能力。在操作系统中,引入进程的目的实施程序能并发执行。
(2) 共享
资源共享即共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。共享可以分为以下两种资源共享方式。
1)互斥共享方式
系统中的某些资源,,如打印机、磁带机,虽然他们可以提供给多个进程使用,但为使所打印的内容不致造成混淆,应规定在同一段时间内只允许一个进程方位该资源。
为此,当进程a访问某资源时,必须先提出请求,如果此时该资源空闲,系统便可将之分配给进程a使用,伺候若再有其他进程也要访问该资源(只要a未用完)则必须等待。仅当进程a访问完并释放该资源后,才允许另一进城对该资源进行访问。计算机系统中的大所属物理设备,以及某些软件中所用的栈、变量和表格,都属于临界资源,他们都要求被互斥的共享。
2)同时访问方式
系统中还有一种资源,允许在一段时间内由多个进程“同时”对它进行访问。这里所谓的“同时”往往是宏观上的,而在微观上,这些进程可能是交替的对该资源进行访问即“分时共享”。典型的可供多个进程同时访问的资源是磁盘设备,一些用重入码编写的文件也可以被“同时”共享,即若干个用户同时访问该文件。
并发和共享是操作系统两个最基本的特征,这两者之间又是互为存在条件的:1资源共享是以程序的并发为条件的,若系统不允许程序并发执行,则自然不存在资源共享的问题;2若系统不能对资源共享实施有效地管理,也必将影响到程序的并发执行,甚至根本无法并发执行。
(3) 虚拟
虚拟是指把一个物理上的实体变为若干个逻辑上的对应物。物理实体是实的,即实际存在的;而后者是虚的,是用户感觉上的事物。相应的,用于实现虚拟的技术,成为虚拟技术。在操作系统中利用了多种虚拟技术,分别用来实现虚拟处理器、虚拟内存和虚拟外部设备。
在虚拟处理器技术中,是通过多道程序设计技术,让多道程序并发执行的方法,来分时使用一台处理器的。此时,虽然只有一台处理器,但他能同时为多个用户服务,是每个终端用户都认为是有一个中央处理器在为他服务。利用多道程序设计技术,把一台物理上的CPU虚拟为多台逻辑上的CPU,称为虚拟处理器。
类似的,可以通过虚拟存储器技术,将一台机器的物理存储器变为虚拟存储器,一边从逻辑上来扩充存储器的容量。当然, 这是用户所感觉到的内存容量是虚的,我们把用户所发哦绝倒的存储器程序虚拟存储器。
还可以通过虚拟设备技术,将一台物理IO设备虚拟为多台逻辑上的IO设备,并允许每个用户占用一台逻辑上的IO设备,这样便可使原来仅允许在一段时间内有一个用户访问的设备,变为在一段时间内允许多个用户同时访问的共享设备。
因此操作系统的虚拟技术可归纳为:时分复用技术和空分复用技术。
(4) 异步
在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。
异步性使得操作系统运行在一种随机的环境下,可能导致进程产生于时间有关的错误。但是只要运行环境相同,操作系统必须保证多次运行进程,都获得相同的结果。
3、操作系统的目标和功能
为了给多道程序提供良好的运行环境,操作系统应具有几方面的功能:处理器管理、存储器管理、设备管理和文件管理。为了方便用户使用操作系统,还必须向用户提供接口。同时操作系统可用来扩充机器,以提供更方便的服务、更高的资源利用率。
(1) 操作系统作为计算机系统资源的管理者
1) 处理器管理
在多道程序环境下,处理器的分配和运行都是以进程为基本单位,因而对处理器的管理可归结为对进程的管理。进程管理的主要功能有:进程控制,进程同步,进程通信,死锁处理,处理器调度等。
2) 存储器管理
存储器管理的主要任务是位多通道程序的运行提供良好的环境,方便用户使用以及提高内存的利用率。因此,存储器管理应具备:内存分配、地址映射、内存保护与共享和内存扩充等。
3) 文件管理
文件管理主要包括文件的存储空间管理、目录管理及文件读写管理及保护等。
4) 设备管理
设备管理的主要任务就是完成用户的IO请求,方便用户使用各种设备,并提高设备的利用率,主要包括混充管理、设备分配、设备处理和虚拟设备等功能。
(2) 操作系统作为用户与计算机硬件系统之间的接口
为方便用户使用操作系统,操作系统还提供了用户接口。操作系统提供的接口主要分为两类:一类是命令接口,用户利用这些操作命令来组织和控制作业的执行;另一类是程序接口,编程人员可以使用它们来请求操作系统服务。
1)命令接口
使用命令接口进行作业控制的主要方式有两种:按作业控制方式的不同,可以将命令接口分为联机命令接口和脱机命令接口。
2)程序接口
程序接口由一组系统调用命令组成。用户通过在程序中使用这些系统调用命令拉i请求操作系统提供的服务。用户在程序中可以直接使用这组系统调用命令向系统提出各种服务请求,如使用各种外部设备,进行有关磁盘文件的操作,申请分配和收回内存 以及其他各种控制要求。
所谓系统调用就是用户在程序中调用操作系统所提供的一些子功能。具体的讲,系统调用就是通过系统调用命令中断现行程序,而转去执行响应的子程序,以完成特定的系统功能;系统调用完成后,返回程序的断点以继续执行。
系统调用命令是作为扩充机器命令提供的,目的是增强系统功能,方便用户使用。而起通过系统调用的方式来使用系统功能,可以保证系统的稳定性和安全性,防止用户随意更改或访问系统的数据或命令。因此,在一些计算机系统中,把系统调用命令成为广义指令。广义指令与机器指令在性质上是不同的,机器指令使用硬件电路直接实现的,而广义命令则是由操作系统提供的一个或多个子程序模块实现的。显然,系统调用属于核心态指令。
没有任何软件支持的计算机成为裸机,它仅构成计算机系统的物质基础,而实际呈现在用户面前的计算机系统是经过若干层软件改造的计算机。裸机在最里层,他的外面是操作系统,有操作系统提供的资源管理功能和方便用户的各种服务功能,将裸机改造成功能更强、使用更方便的机器,通常把覆盖了软件的机器成为扩充机器,又称之为虚拟机。
4操作系统的结构
像现在操作系统这样庞大而复杂的系统,为了能正常工作且容易修改和维护,在实现前必须认真设计操作系统的结构。操作系统发展至今,其设计结构可以分成以下几类:
(1) 简单结构。
(2) 模块化结构
(3) 分层式结构
(4) 微内核结构
1.2、操作系统的发展与分类
1、手工操作阶段
2、脱机输入输出阶段
3、批处理阶段
批处理技术是指计算机系统对一批作业自动进行处理的一种技术。批处理阶段的特点是:用户不用与计算机直接打交道,而是通过专门的操作员来完成作业的输入输出。随着外围设备的迅速发展,后来又出现了脱机批处理系统,即主机直接与磁盘通信。
(1) 单道批处理系统
主要特点:自动性、顺序性、单道性。
(2) 多道批处理系统
多道程序设计技术是指在计算机内存中同时存放几道相互独立的程序,它们在管理程序的控制下相互交替的运行。其特征是:多道,宏观上并行,微观上串行。
4、分时操作系统
所谓分时系统就是把处理器的运行时间分成很短的时间片,按时间片轮流把处理器分配给各联机作业使用。若某个作业再分配给他的时间片内不能完成其计算,则改作业暂时停止运行,把处理器让给其他作业使用,等待下一轮再继续运行,由于计算机速度很快,作业运行轮转的很快,给每个用户的感觉好像是自己独占一台计算机。
分时操作系统十多个用户通过终端同事共享一台主机,这些终端连接在主机上,用户可以同时与主机进行交互操作而不互相干扰。所以,实现分时系统最关键的问题,是如何使用户能与自己的作业进行交互,即当用户在自己的中断上输入命令时,系统应能及时接收并及时处理该命令,再将结果返回用户。分时系统也是支持多道程序设计的系统,但它不同于多道批处理系统。多道批处理是实现作业自动控制而无需人工干预的系统,而分时系统是实现人机交互的系统,这使得分时系统具有与批处理系统不同的特征,其主要特征如下:
同时性,交互性,独立性,及时性。
5、实时操作系统
实时系统的主要特点是:实时性和可靠性。
6、网络操作系统和分布式计算机系统
7、个人计算机操作系统
1.3、操作系统的运行环境
1、操作系统的运行机制
计算机系统中,通常CPU执行两种不同性质的程序,一种是操作系统内核程序;另一种是用户自编程序或系统外城的应用程序。对操作系统而言,这两种程序的作用不同,前者是后者的管理者和控制者,因此“管理程序”要执行一些特权指令,而“被管理程序”出于安全性考虑,不能执行这些指令。所谓特权指令,是指计算集中不允许用户直接使用的指令,如IO指令、置中断指令。
操作系统在具体实现上划分了用户态和核心态,以严格区分两种类程序。
一些与硬件关联交紧密的模块,诸如时钟管理程序、中断处理程序、设备驱动程序等处于最底层。其次是运行频率较高的程序,诸如金城关里、存储器管理和设备管理等。这两部分内容构成了操作系统的内核。这部分内容的指令操作工作在核心态。
内核是计算机上配置的最底层软件,是计算机功能的眼神。不同系统对内核的定义稍有区别,大多数操作系统内核包括四个方面的内容。
(1) 时钟管理
在计算机外部设备中,时钟是最关键的设备。时钟的第一功能是计时,操作系统需要通过时钟管理,向用户提供标准的系统时间。另外,通过时钟中断的管理,可以实现京城的切换。诸如:在分时操作系统中,采用时间片轮转调度的实现;在实时系统中,按截止时间控制运行的实现;在批处理系统中,通过时钟管理来衡量一个作业的运行程度等。因此,系统管理的方方面面无不依赖于它。
(2) 中断机制
引入中断技术的初衷是提高多道程序运行环境中CPU的利用率,而且主要是针对外部设备的。后来的到发展,形成了多种类等,成为操作系统各项操作的基础。例如键盘或鼠标信息的输入、进程的管理和调度、系统功能的调用、设备驱动、文件访问等,无不依赖于中断机制。可以说,现代计算机系统是靠中断驱动的软件。
(3) 原语
按层次结构涉及的操作系统,底层必然是一些可被调用的公用小程序,他们各自完成一个规定的操作。其特点是:1.他们处于操作系统的最底层,是最接近硬件的部分。2.这些程序的运行具有原子性——其操作只能一起合成。3.这些程序的运行时间都较短,而且调用频繁。
通常把具有这些特点的程序成为原语。定义源于的直接方法是关闭中断,让她的所有动作不可分割的进行完再打开中断。
系统中的设备驱动、CPU切换、进程通信等功能中的部分操作都可以定义为原语,是他们呢成为内核的组成部分。
(4) 系统控制的数据结构及处理
系统中用来登记状态信息的数据结构很多。比如作业控制块、进程控制块、设备控制块、各类链表、消息队列、缓冲区、空闲区登记表、内存分配表等。为了实现有效地管理 ,系统需要一些基本的操作,常见的操作有以下三种:
1) 进程管理:进程状态管理、进程调度和分配、创建与撤掉进程控制块的队列维护操作等。
2) 存储器管理:存储器的空间分配和回收管理、内存信息保护程序、代码对换程序等。
3) 设备管理:缓冲区管理、设备分配和回收等。
从上述内容可以了解,核心态指令实际上包括系统调用类指令和一些针对时钟、中断和原语的操作指令。
2、中断和异常的概念
在操作系统中引入核心态和用户态这两汇总工作状态后,就需要考虑这两种状态之间如何切换。操作系统内核工作在核心态,而用户程序工作在用户态。但系统不允许用户程序实现核心态的功能,而它们又必须使用这些功能。
中断(interruption)也成为外中断,指来自CPU执行指令以外的事件发生,如设备发出的IO结束中断,表示设备输入输出处理已经完成,希望处理器能够像设备发出下一个输入输出请求,同事让王成输入输出后的程序继续进行。时钟中断,表示一个固定的事件篇已到,让处理器处理计时、启动定时运行的任务。这一类中断通常是与当前运行的程序无关。中断可细分为硬中断和软中断。硬中断是硬件产生的;软中断是软件产生的。
异常(Exception)也成为内中断、例外或陷入。指源自CPU执行指令内部的时间,如程序的非法操作码、地址越界、算数一出、虚存系统的缺页以及专门的陷入指令等引起的时间。对异常的处理一般要依赖与当前程序的运行现场,而且异常不能被屏蔽,一旦出现异常立即处理,而关于内中断和外中断的联系与区别如下:
这样,操作系统的运行环境可以理解为:用户通过操作系统运行上层程序,而这个上层程序的运行以来与操作系统的底层管理程序提供服务支持,当需要管理程序服务时,系统则通过硬件中断机制进入核心态,运行管理程序;另外也可能是程序运行出现异常情况,被动的需要管理程序的服务,这是就通过异常处理来进入核心态。当管理程序运行结束时,用户程序要继续进行,则通过相应保存程序现场推出中断处理程序或异常处理程序,返回断点处继续执行。在操作系统这一层面上,我们关心的是系统核心态和用户态的软件实现和切换,对于硬件层面的具体理解,可以结合“计算机组成原理”课程中有关中断的内容进行学习。
下面列举一些由用户态转向核心态的例子:
1) 用户程序要求操作系统的服务,即系统服务。
2) 发生一次中断
3) 用户程序中产生了一个错误状态
4) 用户程序中企图执行一条特权指令
5) 从核心态转向用户态由一条指令实现,这条指令也是特权指令。一般情况是中断返回指令。
注意,由用户态进入核心态,不仅仅是状态需要切换,而且,所使用的对战也可能需要由用户堆栈切换为系统对战,但这个系统对战也是属于该进程的。
END IMPORTANT
1.并行性与并发性的区别和联系
并行性和并发性是既相似又有区别的两个概念。并行性是指两个或多个事件在同一时刻发生,并发性是指两个或多个事件在同一时间间隔内发生。
2.分时系统与实时系统特征的比较
3.特权指令的工作机制
所谓特权指令是指有特殊权限的指令,由于这类指令的全县最大,如果使用不当,就会皮怀系统或其他用户信息。为了保证系统安全,这类指令只能用于操作系统或其他系统软件,不直接提供给用户使用,主要用于系统资源的分配和管理,包括改变系统的工作方式,检测用户的访问权限,修改虚拟存储器管理的段表、页表和完成人五的创建和切换等。在某些用户的计算机系统中,为了统一管理各种外部设备,输入输出指令也作为特权指令,不允许用户直接使用。需要输入输出操作时,必须通过系统调用,经由操作系统完成。特权指令那个必须在核心态之星,核心态又叫做特权态、系统态。实际上,CPU在核心态的下可以执行指令系统的全集。
为了防止用户系统中使用特权指令,用户态下只能使用除特权指令以外的指令,核心态下可以使用全部指令。所以把用户程序放在用户态下进行,而操作系统中必须使用特权指令的那部分程序在核心态下运行,保证了计算机系统的安全可靠。从用户态转换为核心态的唯一途径就是终端或异常。
4.系统调用产生的访管中断
程序员在编写程序时,因要求操作系统提供服务而有意识的使用“访管指令”,从而导致程序中断,这属于一种自愿性的中断,所以又称其为“访管中断”。“访管”中断是由访管指令产生,程序员可以使用访管指令中设置参数,当CPU执行到访管指令那个时,将访管指令中的操作数存入到主存中的约定单元,然后产生访管中断,引出操作系统来处理访管中断中的具体要求。这种利用访管指令来实现的指令成为广义指令。当初与用户态的用户程序使用访管指令时,系统根据该访管指令的操作数执行访管中断处理程序,访管中断处理程序将按系统调用的操作数和参数转到响应的例行子程序。完成服务功能后,退出中断,返回到用户程序断点继续执行。