操作系统学习笔记 第一章:操作系统概述(王道考研)

Posted Baret-H

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了操作系统学习笔记 第一章:操作系统概述(王道考研)相关的知识,希望对你有一定的参考价值。

本文章基于 2019 王道考研 操作系统
考试复习推荐资料:操作系统复习总结 - 百度文库 (baidu.com)


需要相关电子书的可以关注我的公众号BaretH后台回复操作系统
image-20210616202753852
后续章节陆续推出…



image-20210310130855654

image-20210607093653405

1.1 操作系统的概念、功能、目标

image-20210606225629224

1.1.1 基本概念

在信息化时代,软件是计算机系统的灵魂,而作为软件核心的操作系统,已与现代计算机系统密不可分、融为一体。计算机系统自下而上可大致分为4部分:硬件操作系统应用程序用户;操作系统管理各种计算机硬件,为应用程序提供基础,并充当计算机硬件与用户之间的中介。

综上所述,操作系统( Operating System,OS)是指控制和管理整个计算机系统的硬件与软件资源,合理地组织、调度计算机的工作与资源的分配,进而为用户和其他软件提供方便接口与环境的程序集合。操作系统是计算机系统中最基本的系统软件。

image-20210606223757753

操作系统定义的核心

  • 计算机的管理者和控制者——管理和控制计算机软件和硬件资源,合理组织计算机系统工作流程
  • 其他软件的运行平台和服务接口——系统服务,用户使用接口

1.1.2 功能和目标

操作系统的目标是方便性有效性可扩充性,具体实现体现在以下几个方面

image-20210310131419130

image-20210614103203487

1️⃣ 系统资源的管理者

操作系统作为系统资源的管理者主要提供四大功能:处理机管理、存储器管理、文件管理、设备管理,目的是为了保证系统资源的安全高效使用

image-20210310131722127

2️⃣ 用户与计算机硬件间的接口

为了让用户方便、快捷、可靠地操纵计算机硬件并运行自己的程序,操作系统还提供了用户接口。操作系统提供的接口主要分为两类:一类是命令接口,用户利用这些操作命令来组织和控制作业的执行;另一类是程序接口,编程人员可以使用它们来请求操作系统服务

image-20210612083149924

image-20210310132914986

命令接口 主要分为两种:联机命令接口 和 脱机命令接口

  • 联机命令接口(交互式命令接口)

    交互式:输入一行命令,系统执行相应的命令

    image-20210310132301809

  • 脱机命令接口(批处理命令接口)

    多条命令以文件的方式存储在一起,调用时一条一条的执行

    image-20210310132535312

程序接口 是只能由用户通过程序间接使用的接口,由一组系统调用组成,用户通过在程序中使用这些系统调用来请求操作系统为其提供服务,如使用各种外部设备、申请分配和回收内存及其他各种要求

别称:程序接口=系统调用=系统调用指令=广义指令

image-20210310132720016

当前最为流行的是图形用户界面(GUI),即图形接口。GUI最终是通过调用程序接口实现的,用户通过鼠标和键盘在图形界面上单击或使用快捷键,就能很方便地使用操作系统。严格来说,图形接口不是操作系统的一部分,但图形接口所调用的系统调用命令是操作系统的一部分

image-20210310133741108

3️⃣ 对硬件机器进行拓展

没有任何软件支持的计算机称为裸机,它仅构成计算机系统的物质基础,而实际呈现在用户面前的计算机系统是经过若干层软件改造的计算机。裸机在最里层,其外面是操作系统。操作系统所提供的资源管理功能和方便用户的各种服务功能,将裸机改造成功能更强、使用更方便的机器:因此,我们通常把覆盖了软件的机器称为扩充机器或虚拟机

image-20210606225536679



1.2 操作系统四大特征

操作系统是一种系统软件,但与其他系统软件和应用软件有很大的不同,它有自己的特殊性即基本特征。操作系统的基本特征包括并发、共享、虚拟和异步。

image-20210310145621873

1️⃣ 并发

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

注意同一时间间隔(并发)和同一时刻(并行)的区别:

  • 并发是指在多道程序环境下,一段时间内宏观上有多道程序在同时执行,而在每个时刻,单处理机环境下实际仅能有一道程序执行,因此微观上这些程序仍是分时交替执行的。操作系统的并发性是通过分时得以实现的
  • 并行性是指系统具有同时进行运算或操作的特性,在同一时刻能完成两种或两种以上的工作。并行性需要有相关硬件的支持,如多流水线或多处理机硬件环境

image-20210310144138466image-20210606225903958

2️⃣ 共享

资源共享即共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。共享可分为以下两种资源共享方式:互斥共享方式(打印机)和同时共享方式(磁盘、内存)

image-20210310144525110

共享和并发的关系:并发和共享是操作系统两个最基本的特征,两者之间互为存在的条件:①资源共享是以程序的并发为条件的,若系统不允许程序并发执行,则自然不存在资源共享问题;②若系统不能对资源共享实施有效的管理,则必将影响到程序的并发执行,甚至根本无法并发执行。

image-20210310144840378

3️⃣ 虚拟

虚拟是指把一个物理上的实体变为若干逻辑上的对应物。物理实体(前者)是实的,即实际存在的;而后者是虚的,是用户感觉上的事物。用于实现虚拟的技术,称为虚拟技术。操作系统中利用了多种虚拟技术来实现虚拟处理器、虚拟内存和虚拟外部设备等。

  • 虚拟处理器技术是通过多道程序设计技术,采用让多道程序并发执行的方法,来分时使用个处理器的。此时,虽然只有一个处理器,但它能同时为多个用户服务,使每个终端用户都感觉有一个中央处理器(CPU)在专门为它服务。利用多道程序设计技术把一个物理上的CPU虚拟为多个逻辑上的CPU,称为虚拟处理器
  • 类似地,可以采用虚拟存储器技术将一台机器的物理存储器变为虚拟存储器,以便从逻辑上扩充存储器的容量。当然,这时用户所感觉到的内存容量是虚的。我们把用户感觉到(但实际不存在)的存储器称为虚拟存储器
  • 还可采用虚拟设备技术将一台物理IO设备虚拟为多台逻辑上的IO设备,并允许每个用户占用一台逻辑上的IO设备,使原来仅允许在一段时间内由一个用户访问的设备(即临界资源变为在一段时间内允许多个用户同时访问的共享设备

因此,操作系统的虚拟技术可归纳为:时分复用技术,如处理器的分时共享;空分复用技术,如虚拟存储器。

image-20210310145114819image-20210310145228521

虚拟和并发的关系:

image-20210310145341206

4️⃣ 异步

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

image-20210310145536291



1.3 操作系统的发展和分类

image-20210310151034655

1️⃣ 手共操作阶段

image-20210607083257029

image-20210614101915767

2️⃣ 批处理阶段—单道批处理系统

image-20210614102000182

image-20210607083431848

image-20210614102142433

3️⃣ 批处理阶段—多道批处理系统

image-20210607083556569

image-20210614102332138

image-20210310150519639image-20210310150654063

4️⃣ 分时操作系统

image-20210614102522730

image-20210607083728408

image-20210614102547118

5️⃣ 实时操作系统

image-20210614102715593

image-20210607083759302

image-20210614102750850

6️⃣ 其他

image-20210607083840857



1.4 操作系统运行机制和体系结构

image-20210310215422813

1.4.1 运行机制

计算机系统中,通常CPU执行两种不同性质的程序:一种是操作系统内核程序;另一种是用户自编程序(即系统外层的应用程序,或简称“应用程序”)。对操作系统而言,这两种程序的作用不同,前者是后者的管理者,因此“管理程序”(即内核程序)要执行一些特权指令,而“被管理程序”(即用户自编程序)出于安全考虑不能执行这些指令。所谓特权指令,是指计算机中不允许用户直接使用的指令,如IO指令、置中断指令,存取用于内存保护的寄存器、送程序状态字到程序状态字寄存器等的指令。在具体实现上,将CPU的状态划分为用户态(目态)和核心态(又称管态、内核态)。可以理解为CPU内部有一个小开关,当小开关为1时,CPU处于核心态,此时CPU可以执行特权指令;当小开关为0时,CPU处于用户态,此时CPU只能执行非特权指令。用户自编程序运行在用户态,操作系统内核程序运行在核心态。

image-20210310151632668

前提知识:什么是指令?

指令是处理器CPU能识别、执行的最基本命令;与高级语言的“代码”是不同的,CPU看不懂这些高级语言程序的含义,为了让这些程序能够顺利执行,就需要把它们“翻译”成CPU能懂的机器语言,即一条条“指令”(这个“翻译”的过程称为“编译”)。所谓执行程序,其实就是CPU根据一条条指令的指示来执行一个个具体的操作。

image-20210310151227489

1️⃣ 两种指令

image-20210310151311789

2️⃣ 两种处理器状态

image-20210310151428553

3️⃣ 两种程序

image-20210310151503676

1.4.2 操作系统内核

在软件工程思想和结构程序设计方法影响下诞生的现代操作系统,其结构从最先的无结构操作系统模块化操作系统结构再到如今的分层操作系统结构。在分层结构中,操作系统的各项功能分别被设置在不同的层次上,每层包含各种模块,如下图所示。层间模块可以随意互相调用,层间模块调用需要遵循单向调用原则,即只能高层模块调用低层模块。

image-20210614103935534

一些与硬件关联较紧密的模块,如时钟管理中断处理、设备驱动等处于最低层。其次是运行频率较高的程序,如进程管理、存储器管理和设备管理等。这两部分内容构成了操作系统的内核,该内容的指令操作工作在核心态。

内核是计算机上配置的底层软件,是计算机功能的延伸。不同系统对内核的定义稍有区别,大多数操作系统内核包括4方面的内容:时钟管理、中断处理、原语、对系统资源进行管理的功能

image-20210310214758646

1.4.3 大内核、微内核

操作系统的体系结构是一个开放的问题,随着发展,操作系统分层式的结构中的内核部分也逐渐划分为两种形式——微内核大内核

image-20210310214851548

大内核与微内核

image-20210310215212768



1.5 中断和异常

image-20210607092026376

1.5.1 中断机制的诞生

在操作系统中引入核心态和用户态这两种工作状态后,就需要考虑这两种状态之间如何切换,操作系统内核工作在核心态,而用户程序工作在用户态。系统不允许用户程序实现核心态的功能,而它们又必须使用这些功能。因此,需要在核心态建立一些“门”,以便实现从用户态进入核心态在实际操作系统中,CPU运行上层程序时唯一能进入这些“门”的途径就是通过中断或异常。

因此引入了中断机制,实现了多道程序并发执行,本质就是因为发生中断就因为着操作系统介入,开展管理工作。发生中断或异常时,运行用户态的CPU会立即进入核心态,这是通过硬件实现的(例如,用一个特殊寄存器的一位来表示CPU所处的工作状态,0表示核心态,1表示用户态。若要进入核心态,则只需将该位置0即可)

image-20210310215631520image-20210310215713631

1.5.2 中断的概念、作用及分类

image-20210607091207839

中断(Interruption)也称外中断,指来自CPU执行指令以外的事件的发生,如设备发出的IO结束中断,表示设备输入输出处理已经完成,希望处理机能够向设备发下一个输入输出请求,同时让完成输入输出后的程序继续运行。时钟中断,表示一个固定的时间片已到,让处理机处理计时、启动定时运行的任务等。这一类中断通常是与当前指令执行无关的事件,即它们与当前处理机运行的程序无关。

异常(Exception)也称内中断、例外或陷入(tap),指源自CPU执行指令内部的事件,如程序的非法操作码、地址越界、算术溢出、虚存系统的缺页及专门的陷入指令等引起的事件。对异常的处理一般要依赖于当前程序的运行现场,而且异常不能被屏蔽,一旦出现应立即处理。

image-20210612091004053

image-20210607090951828

1.5.3 中断实现并发执行的详细过程举例

假设这里有三个进程需要运行,每个进程只能在自己的时间片时间内运行

1、进程1在用户态下运行,运行到一个时间片时,CPU会收到计时部件发出的中断信号,CPU就会切换为核心态,需要操作系统接入,开展管理工作

image-20210310220508776

2、CPU的使用权限交给了操作系统,操作系统内核对中断信号进行处理

image-20210310221216229

3、操作系统发现中断信号是代表进程1的时间片已经用完,要换进程2运行;

image-20210310221310456

4、操作系统就会CPU的使用权限交还给用户进程,进程2就会在用户态下开始执行,进程2执行一段时间后,会发出系统调用(内中断信号),请求输出。为了保证系统的安全性,输入输出操作相应的指令是特权指令,不允许用户进程直接使用,因此用户进程只能通过系统调用的方式来主要要求操作系统介入,让操作系统代完成请求输出操作。

image-20210310221906282

5、然后CPU就会切换成核心态,操作系统内核处理中断,也就是进程2的输出请求,就会要求打印机设备开始工作;进程2由于要等待打印机I/O设备工作完成,所以操作系统会让进程2暂停运行,换进程3运行

image-20210310222112433

6、操作系统完成一系列的管理工作后,操作系统会将CPU的使用权还给用户进程,进程3开始工作;并且打印机在操作系统的要求下会并行的工作,当其工作结束后,会向CPU发出I/O完成的中断信号;然后就会切换为核心态,操作系统内核处理中断

image-20210310222356008

7、中断信号表示的是进程2的I/O操作完成,让进程2恢复运行,完成后续工作,因此操作系统又将CPU的使用权还给用户进程,进程2重新开始运行

image-20210310222546517

1.5.4 中断机制的基本原理

image-20210607091744672

image-20210607091658960



1.6 系统调用

image-20210607093443490

1.6.1 什么是系统调用&作用

所谓系统调用,是指用户在程序中调用操作系统所提供的一些子功能,系统调用可视为特殊的公共子程序。系统中的各种共享资源都由操作系统统一掌管,因此在用户程序中,凡是与资源有关的操作(如存储分配、进行IO传输及管理文件等),都必须通过系统调用方式向操作系统提出服务请求,并由操作系统代为完成。通常,一个操作系统提供的系统调用命令有几十条乃至上百条之多。这些系统调用按功能大致可分为如下几类。

image-20210607092307100

image-20210607092403607

image-20210607092521362

1.6.2 系统调用和库函数的区别

image-20210607092450990

1.6.3 系统调用执行过程

系统调用相关功能涉及系统资源管理、进程管理之类的操作,对整个系统的影响非常大,因此必定需要使用某些特权指令才能完成,所以系统调用的处理需要由操作系统内核程序负责完成,要运行在核心态。用户程序可以执行陷入指令(又称访管指令或trap指令)来发起系统调用,请求操作系统提供服务。可以这么理解,用户程序执行“陷入指令”,相当于把CPU的使用权主动交给操作系统内核程序(CPU状态会从用户态进入核心态),之后操作系统内核程序再对系统调用请求做出相应处理。处理完成后,操作系统内核程序又会把CPU的使用权还给用户程序(即CPU状态会从核心态回到用户态)

image-20210607093220314

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

image-20210607093335798

以上是关于操作系统学习笔记 第一章:操作系统概述(王道考研)的主要内容,如果未能解决你的问题,请参考以下文章

专栏必读王道考研408操作系统万字笔记(有了它不需要你再做笔记了):各章节内容概述导航和思维导图

操作系统学习笔记 第二章:进程管理(王道考研)

操作系统学习笔记 第二章:进程管理(王道考研)

操作系统学习笔记 第五章:文件管理(王道考研)

操作系统学习笔记 第五章:文件管理(王道考研)

操作系统学习笔记 第六章:设备管理(王道考研)