操作系统基本概念

操作系统是计算机系统的核心,管理硬件资源并提供软件接口。它包括进程管理、内存管理、文件管理、设备管理等功能,实现并发、共享、虚拟和异步等特征。操作系统通过分时、虚拟技术等提高资源利用率,支持多用户交互。常见的操作系统结构有无结构、模块化、分层和微内核等。系统调用是用户程序与操作系统交互的接口,而中断机制确保了多任务的顺利执行。
摘要由CSDN通过智能技术生成

操作系统概述

操作系统的概念及作用

什么是操作系统

操作系统(Operation System),简称 OS,是关机计算机硬件与软件资源的计算机程序。
在这里插入图片描述

计算机系统的构成:

  • 用户
  • 应用程序
  • 操作系统(OS)
  • 硬件(裸机)

操作系统管理各种计算机硬件,为应用程序提供基础,并充当计算机硬件与用户之间的中介。它用户开放了访问方式,称为接口。操作系统也会应用程序提供了接口。

操作系统是一种系统软件

  • 与硬件交互
  • 对资源共享进行调度管理
  • 解决并发操作处理中存在的协调问题
  • 数据结构复杂,外部接口多样化,便于用户反复调用

作为系统软件,OS 做了那些事

  • 管理与配置内存
  • 决定系统资源供需的优先次序
  • 控制输入设备与输出设备
  • 操作网络与管理文件系统等基本事务
  • 提供一个让用户与 系统交互的操作界面

操作系统的目标和功能

操作系统既要能够管理计算机各类软件的运行,充分发挥硬件的作用,又要能够具备用户方便操作的界面,同时,还要支持计算机系统功能的扩充(目标)。

所以,为了给多道程序提供良好的运行环境,操作系统应具有以下三方面的功能:

  • 操作系统作为计算机系统资源的管理者
  • 操作系统作为用户与计算机系统之间的接口
  • 操作系统实现了对计算机资源的抽象

作为系统资源的管理者

  1. 处理机管理

    在多道程序环境下,处理机的分配和运行都以进程(或线程)为基本单位,因而对处理机的管理科归结为对进程的管理。并发时指在计算机内同时运行多个进程。进程管理的主要功能包括进程控制、进程同步、进程通信、死锁处理、处理机调度等。

  2. 储存器管理

    存储器管理是为了给名道程序的运行提供良好的环境,方便用户 使用及提高内存的利用率。

    主要包括内存分配与回收、地址映射、内存保护与内存扩充等 功能。

  3. 文件管理

    计算机中的信息都是以文件的形式存在的,操作系统中负责文件管理的部分称为文件系统。文件管理包括文件存储空间的管理、目录管理及文件读写管理和保护等。

  4. 设备管理

    设备管理主要任务是完成用户的请求,方便用户使用各种设备,并提高设备的利用率,主要包括缓冲管理、设备分配、设备处理和虚拟设备等功能。

作为用户与计算机系统之间的接口

为了让用户方便、快捷、可靠地操纵计算机硬件并运行自己的程序,操作系统还提供了用户接口。操作系统提供的接口主要分为三类:一类是命令接口,用户利用这些操作命令来组织和控制作业的执行;第二类是程序接口,编程人员可以用它们请求操作系统服务;第三类是图形用户界面,严格来说,图形接口不是操作系中的一部分,但图形接口所调用的系统调用命令是。

实现了对计算机资源的抽象

操作系统将计算机硬件资源抽象为软件资源,方便用户进行操作。

人们在硬件设备上覆盖一层管理软件,隐藏了设备操作的实现细节,向用户提供了一个对硬件操作的抽象模型。

操作系统的特征

操作系统的基本特征包括并发、共享、虚拟和异步。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Zj1UM7TM-1661078712168)(E:\Program Files (x86)]\百度网盘下载\操作系统笔记\文档第一章\imgs\01.OS的四个基本特征.png)

并发

并发是指两个或多个事件在同一时间间隔(时间段)内发生。操作系统的并发性是指计算机系统中同时在在多个运行的程序,因此它且有处理和调度多个程序同时执行的能力。在操作系统中,引入进程的目的就是使程序能并发地执行。

  • 宏观上,处理机同时执行多道程序
  • 微观上,处理机在多道程序间告诉切换(分时交替执行)
  • 关注单个处理机同一时间段内处理任务数量的能力

操作系统的并发性通过分时得以实现。

并发:同一时间间隔(时间段)发生事件数量

​ 午餐时段,学校餐厅并发用餐人数为12人

并行:同一时刻(时间点)发生的事件数量

​ 同一时间点,学校餐厅有三个窗口,可同时为3人打餐。

共享

系统中的资源提供多个并发执行的应用程序使用。其分为两种,同时访问方式和互斥共享方式。

同时访问方式

同一个时间段允许多个程序同时访问共享资源,典型资源就是磁盘资源。

这里所说的“同时”通常是宏观上的,而在微观上,这些进程可能是交替地对该资源进行访问即“分时共享的

互斥共享方式

系统中的某些资源,如打印机、磁带机,虽然可供多个进程伸用,但为使得所打印或记录的结果不致造成混淆,应规定在一段时间内只允许一个进程访问该资源。

又把在一段时间内只允许一个进程访问的资源称为临界资源或独占资源。

并发和共享是操作系统两个最基本的特征,两者互为存在条件:

①资源共享是以程序的并发为条件的,若系统不允许程序并发执行,则自然不存在资源共享问题;

②若系统不能对资源共享实施有效的管理,则必将影响到程序的并发执行,甚至根本无法并发执行。

虚拟技术

虚拟是指把一个物理上的实体变为若干逻辑上的对应物。

操作系统的虚拟技术可归纳为两类:

  • 时分复用技术(TDM,Time Division Multiplexing):如处理器的分时共享;
  • 空分复用技术(SDM,Space Division Multiplexing):如虚拟存储器。

操作系统中利用了多种虚拟技术来实现虚拟处理器、虚拟内存和虚拟外部设备等。

虚拟处理技术

通过多道程序设计技术,采用让多到程序并发执行的方法,来时分复用一个处理器。利用多道程序设计技术把一个物理上的CPU虚拟为多个逻辑上的CPU,称为虚拟处理器。

虚拟设备技术

将一台物理Ⅰ/O设备虚拟为多台逻辑上的Ⅰ/O设备,并允许每个用户占用一台逻辑上的/设备,使原来仅允许在一段时间内由一个用户访问的设备(即临界资源)变为在一段时间内允许多个用户同时访问的共享设备。

虚拟存储技术

将一台机器的物理存储区变为虚拟存储器,以便从逻辑上扩充存储器的容量。我们把用户感觉到(但实际不存在)的存储器称为虚拟存储器。

异步

多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行并不是一贯到底的,而是走走停停的,它以不可预知的速度向前推进,这就是进程的异步性

异步性使得操作系统运行在一种随机的环境下,可能导致进程产生与时间有关的错误(就像对全局变量的访问顺序不当会导致程序出错一样)。然而,只要运行环境相同,操作系统就须保证多次运行进程后都能获得相同的结果。

操作系统的发展

手工操作阶段

此阶段无操作系统。

用户在计算机上算题的所有工作都要人工干预,如程序的装入、运行、结果的输出等。随着计算机硬件的发展,人机矛盾(速度和资源利用)越来越大,必须寻求新的解决办法。

手工操作阶段有两个突出的缺点:

①用户独占全机。不会出现因资源已被其他用户占用而等待的现象,但资源利用率低。

②CPU等待手工操作,CPU的利用不充分。一的解决办法就是用高速的机器代替相对较慢的手工操作来对作业进行控制。

批处理阶段

操作系统开始出现。

为了解决人机矛盾及CPU和Ⅰ/ O设备之间速度不匹配的矛盾,出现了批处理系统。它按发展历程又分为单道批处理系统、多道批处理系统(多道程序设计技术出现以后)。

单道批处理系统

系统对作业的处理是成批进行的,但内存中始终保持一道作业。单道批处理系统的主要特征如下:

**1)自动性。**在顺利的情况下,磁带上的一批作业能自动地逐个运行,无须人工干预。

**2)顺序性。**磁带上的各道作业顺序地进入内存,各道作业的完成顺序与它们进入内存的顺序在正常情况下应完全相同,亦即先调入内存的作业先完成。

**3)单道性。**内存中仅有一道程序运行,即监督程序每次从磁带上只调入一道程序进入内存运行,当该程序完成或发生异常情况时,才换入其后继程序进入内存运行。

此时面临的问题是:每次主机内存中仅存放一道作业,每当它在运行期间(注意这里是“运行时”而不是“完成后”发出输入/输出请求后,高速的CPU便处干等待低速的Ⅰ/0完成状态。为了进一步提高资源的利用率和系统的吞吐量,引入了多道程序技术。

多道批处理系统

多道程序设计技术允许多个程序同时进入内存并允许它们在CPU中交替地运行,这些程序共享系统中的各种硬/软件资源。

当一道程序因Ⅰ/O请求而暂停运行时,CPU便立即转去运行另一道程序。它不采用某些机制来提高某一技术方面的瓶颈问题,而让系统的各个组成部分都尽量去“忙”,因此切换任务所花费的时间很少,可实现系统各部件之间的并行工作,使其整体在单位时间内的效率翻倍。

当然,多道批处理系统的设计和实现要比单道系统复杂很多,因为要充分利用各种资源,就要涉及各种资源的调度问题。

多道程序设计的特点是多道、宏观上并行、微观上串行。

1)多道。计算机内存中同时存放多道相互独立的程序。

2)宏观上并行。同时进入系统的多道程序都处于运行过程中,即它们先后开始各自的运行,但都未运行完毕。

3)微观上串行。内存中的多道程序轮流占有CPU,交替执行。

多道程序设计技术的实现需要解决下列问题:

1)如何分配处理器。

2)多道程序的内存分配问题。

3)Ⅰ/O设备如何分配。

4)如何组织和存放大量的程序和数据,以方便用户使用并保证其安全性与一致性。

在批处理系统中采用多道程序设计技术就形成了多道批处理操作系统。该系统把用户提交的作业成批地送入计算机内存,然后由作业调度程序自动地选择作业运行。

**优点:**资源利用率高,多道程序共享计算机资源,从而使各种资源得到充分利用:系统吞叶量大,CPU和其他资源保持“忙碌”状态。

**缺点:**用户响应的时间较长;不提供人机交互能力,用户既不能了解自己的程序的运行情况,又不能控制计算机。

分时操作系统

一台主机连接多个带有显示器和键盘的终端,同时允许多个用户通过自己的终端,以交互方式使用计算机,共享主机中的资源。

所谓分时技术,是指把处理器的运行时间分成很短的时间片,按时间片轮流把处理器分配给各联机作业使用

若某个作业在分配给它的时间片内不能完成其计算,则该作业暂时停止运行,把处理器让给其他作业使用,等待下一轮再继续运行。由于计算机速度很快,作业运行轮转得也很快,因此给每个用户的感觉就像是自己独占一台计算机。

特征

多路性:也称为同时性,指允许多个终端用户使用同一台计算机,即一台计算机与若干台终端相连接,终端上的这些用户可以同时或基本同时使用计算机。

交互性:用户能够方便地与系统进行人机对话,即用户通过终端采用人机对话的方式直接控制程序运行,与同程序进行交互。

独立性:系统中多个用户可以彼此独立地进行操作,互不干扰,单个用户感觉不到别人也在使用这台计算机,好像只有自己单独使用这台计算机一样。

及时性:用户请求能在很短时间内获得响应。分时系统采用时间片轮转方式使一台计算机同时为多个终端服务,使用户能够对系统的及时响应感到满意。

缺点

作业/用户优先级相同,不能优先处理紧急任务。

实时操作系统

系统能即时响应外部事件的请求,在规定的而时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。

这里的时间限制可以分为两种情况:

若某个动作必须绝对地在规定的时刻(或规定的时间范围)发生,则称为硬实时系统,如飞行器的飞行自动控制系统,这类系统必须提供绝对保证,让某个特定的动作在规定的时间内完成。

若能够接受偶尔违反时间规定且不会引起任何永久性的损害,则称为软实时系统,如飞机订票系统、银行管理系统。

在实时操作系统的控制下,计算机系统接收到外部信号后及时进行处理,并在严格的时限内处理完接收的事件。实时操作系统的主要特点是及时性和可靠性。

网络操作系统和分布式计算机系统

网络操作系统把计算机网络中的各台计算机有机地结合起来,提供一种统一、经济而有效的使用各台计算机的方法,实现各台计算机之间数据的互相传送。网络操作系统最主要的特点是网络中各种资源的共享及各台计算机之间的通信

分布式计算机系统是由多台计算机组成并满足下列条件的系统:系统中任意两台计算机通过通信方式交换信息;系统中的每台计算机都具有同等的地位,即没有主机也没有从机,每台计算机上的资源为所有用户共享;系统中的任意台计算机都可以构成一个子系统,并且还能重构:任何工作都可以分布在几台计算机上,由它们并行工作、协同完成。

用于管理分布式计算机系统的操作系统称为分布式计算机系统。该系统的主要特点是:分布性和并行性。分布式操作系统与网络操作系统的本质不同是,分布式操作系统中的若干计算机相互协同完成同一任务。

操作系统的运行环境

操作系统的运行机制

计算机系统中,通常CPU执行两种不同性质的程序:

操作系统内核程序

用户自编程序,即系统外层的应用程序,或简称“应用程序

在这里插入图片描述

对于操作系统而言,这两种程序的作用不同——前者是后者的管理者,因此管理程序(即内核程序)要执行一些特权指令,而被管理程序(即用户自编程序)处于安全考虑不能执行这些指令。

所谓特权指令。就是指具有特殊权限的指令。这类指令只用于操作系统或其他系统软件,一般不直接提供给用户使用。主要用于系统资源的分配和管理,包括改变系统工作方式,检测用户的访问权限,修改虚拟存储器管理的段表、页表,完成任务的创建和切换等。如 I/O 指令,置中断指令,存取用于内存保护的寄存器、送程序状态字到程序状态寄存器等的指令。

在具体实现上,将 CPU 的状态划分为用户态核心态(又称管态、内核态)。

可理解为CPU内部有一个小开关(程序状态字):

当小开关为0时,CU处于核心态,此时CPU可以执行特权指令;
当小开关为1时,CPU处于用户态,此时CPU只能执行非特权指令。

用户自编程序运行在用户态,操作系统内核程序运行在核心态

时钟管理

时钟是操作系统中最关键的设备。

时钟的第一功能是计时,操作系统需要通过时钟管理,向用户提供标准的系统时间。

时钟中断:通过时钟中断的管理,可以实现进程的切换。

中断机制

中断机制可以提高多道程序环境下 CPU 利用率。操作系统无不依赖于中断机制,可以说,现代操作系统是靠中断驱动的软件。

中断机制有两个分类,分别为外中断和内中断。

外中断的中断信号来源于外部设备。

内中断的中断信号来源于当前指令。

内中断也叫:异常/陷入/例外。

内中断的三种情况

  1. 陷阱/陷入:由应用程序主动引发

    比如我们的程序往下走,有一条指令需要调用系统服务:读文件,CPU就会中断,产生一个陷入指令(应用程序引发,CPU 产生)。

  2. 故障:由错误条件引发

    比如我们的程序往下走,有一条指令出现内存缺页故障,CPU 产生一个故障中断,然后继续执行后续的指令。

  3. 终止:由致命错误引发

    比如非法访问等特别严重的情况,产生一个终止中断,程序直接停。

中断处理过程

  1. 产生中断后先关闭中断,保证CPU 不响应更高级的中断请求。
  2. 保存断点,保证中断完成后回到原来的位置(程序计数器)。
  3. 引出中断服务程序。
  4. 保存现场和屏蔽字。
  5. 开中断,当前CPU就可以响应其他中断了。
  6. 执行中断服务程序,从外存中加载文件到内存。
  7. 关中断,保证CPU 不响应更高级的中断请求。
  8. 恢复现场和屏蔽字(PSWR 和通用寄存器的内容)。
  9. 开中断,返回中断,程序继续执行。

原语

按层次结构设计的操作系统,底层必然是一些可被调用的公用小程序,它们各自完成一个规定的操作。它们的特点如下:

  • 处于操作系统的最低层,是最接近硬件的部分
  • 出于系统安全性和便于管理考虑,这些程序的运行具有原子性,其操作只能一气呵成,不会被中断
  • 这些程序的运行时间都较短,而且调用频繁

通常把具有这些特点的程序称为原语(Atomic Operation)。原语是由若干条指令组成的程序段,用来实现某个特定功能,在执行过程中不可被中断。定义原语的直接方法是关闭中断,让其所有动作不可分割地完成后再打开中断。

系统中的设备驱动、CPU切换、进程通信等功能中的部分操作都可定义为原语,使它们成为内核的组成部分。

系统数据结构

系统中用来登记状态信息的数据结构很多,如作业控制块、进程控制块(PCB)、设备控制块,各类链表,消息队列缓冲区、空闲区登记表、内存分配表等,为了实现有效的管理,系统需要一些基本的操作,常见的操作有:

  • 进程管理。进程状态管理、进程调度和分派、创建与撤销进程控制块等。
  • 存储器管理。存储器的空间分配和回收、内存信息保护程序、代码对换程序等。
  • 设备管理。缓冲区管理、设备分配和回收等。

系统调用

是操作系统实现的,给程序调用的,用于内核服务的一套接口的集合。

通常,一个操作系统提供的系统调用命令有几十条乃至上百条之多。这些系统调用按功能大致可分为如下几类。

  • 设备管理。完成设备的请求或释放,以及设备启动等功能。
  • 文件管理。完成文件的读、写、创建及删除等功能。
  • 进程控制。完成进程的创建、撤销、阻塞及唤醒等功能。
  • 进程通信。完成进程之间的消息传递或信号传递等功能。
  • 内存管理。完成内存的分配、回收以及获取作业占用内存区大小及始址等功能。

显然,系统调用相关功能涉及系统资源管理、进程管理之类的操作,对整个系统的影响非常大,因此必定需要使用某些特权指令才能完成,所以系统调用的处理需要由操作系统内核程序负责完成,要运行在核心态。也就是系统调用会从用户态切换到内核态,需要花费时间。

这么设计的目的是:用户程序不能直接执行对系统影响非常大的操作,必须通过系统调用的方式请求操作系统代为执行,以便保证系统的稳定性和安全性,防止用户程序随意更改或访问重要的系统资源,影响其他进程的运行。

操作系统的结构设计

第一代:无结构OS

一系列过程(程序)的集合,过程间可以相互调用

结构复杂且混乱,难以调试、阅读。

第二代:模块化结构 OS

基于分解和模块化原则

按照功能划分模块/子模块,规定模块间的接口

模块独立性标准:高内聚、低耦合

高内聚:模块内部的关系是紧密连接的。

低耦合:减少 内部对其他模块的调用

优点

  • 提高设计 OS 的正确性、可理解性和可维护性
  • 增强 OS 的适应性
  • 加速开发过程

缺点

  • 模块接口设计难以扩展后续需求
  • 模块设计没有统一决策标准,导致模块接口设计不可靠

第三代:分层式结构 OS

有序分层法,自顶向下依次依赖

设计时自底向上,每一步建立在可靠的基础上

优缺点:容易保证系统正确性高,容易扩充和维护,自下而上的层次通信,导致系统效率降低

第四代:微内核 OS 结构

将内核中最基本的功能(如进程管理等)保留在内核,而将那些不需要在核心态执行的功能移到用户态执行,从而降低了内核的设计复杂性。那些移出内核的操作系统代码根据分层的原则被划分成若干服务程序,它们的执行相互独立,交互则都借助于微内核进行通信。

优点

  • 提高 OS 的高可扩展性、可靠性、可移植性
  • 支持分布式系统
  • 融入了面向对象技术

缺点

  • 相对较早期的 OS,降低了一定的效率
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值