操作系统的概念

从下往上看,分为裸机,操作系统,应用程序,用户

操作系统是最接近硬件的层次

进程是一个程序的执行过程,执行前需要将该程序放到内存中才能被CPU处理

操作系统提供的接口:作为用户和计算机硬件之间的接口

  1. 命令接口:允许用户直接使用
  2. 程序接口:允许用户通过程序间接使用(系统接口=系统调用)
  3. GUI:图形化窗口(用户图形界面)

命令接口

分为联机命令接口和脱机命令接口

联机命令接口:交互式命令接口

脱机命令接口:批处理命令接口

image-20230402085009324

操作系统的四个特征

  • 并发
  • 共享
  • 虚拟
  • 异步

其中并发和共享是两个最基本的特征,二者互为存在条件

并发

两个或多个时间在同一个时间间隔内发生,这些事件宏观上是同时发生的,但是微观上是交替发生的。

一个单核的CPU同一时刻只能运行一个程序,因此操作系统会负责协调多个程序交替执行,所以操作系统的并发性指的是:计算机系统中同时存在着多个运行着的程序

并行:多核CPU,可以同时处理多个程序。但是操作系统的并发性依然必不可少

共享

资源共享,指系统中的资源可以共内存中多个并发执行的进程共同使用

共享方式:互斥共享方式和同时共享方式

互斥共享方式:一段时间内只能允许一个进程访问该资源

同时共享方式:系统内某些资源,允许多个进程同时对它们访问

虚拟

把物理上的实体变为若干个逻辑上的对应物。

例子:电脑内存只有4GB,但是实际上可以同时运行大于4GB的程序,这就是虚拟存储器技术。

所以在用户看来有更大的内存在使用,这个是空分复用技术

例子:对于1个CPU的内核,可以同时运行多个程序,用户看起来像有多个CPU在处理

这个是,虚拟技术中的”时分复用技术”,微观上处理机在各个微小的时间段内交替着为各个进程服务。

可以容易看出来,没有并发性就没有虚拟性

异步

在多个程序的环境下,允许多个程序的并发执行,但是由于资源有限,进程的执行不是一贯到底的,而是”走走停停”,这就是程序进程的异步性

只有系统拥有并发性,才有可能导致异步性

操作系统的发展与分类

image-20230402092230293

手工操作阶段

缺点:用户独占全机,人机速度矛盾

批处理阶段:单道批处理系统

引入脱机输入/输出技术,并监督程序负责控制作业的输入、输出

CPU有大量的时间在空闲等待I/O

多道批处理系统

每次往内存中输入多道程序,由操作系统负责管理这些程序的运行,各个程序并发处理

优点:多道程序并发执行,共享计算机资源。资源利用率大幅度提升,CPU和其他资源保持忙碌的状态,系统吞吐量增大

分时操作系统

计算机以时间片为单位轮流为各个用户/作业服务,各个用户可以通过终端与计算机交互。用户请求可以被即时相应,结局了人机交互的问题。允许多个用户同时使用一台计算机,并且用户对计算机的操作相互独立,感受不到别人的存在

缺点:不能优先处理一些紧急任务,操作系统对各个用户都是完全公平的,循环的为各个用户服务一个时间片,不区分任务的紧急性

实时操作系统:

优先响应一些紧急的任务,某些紧急任务不需要时间片排队

分为:1.硬实时系统(严格的规定时间内完成处理) 2.软实时系统(偶尔违反时间规定)

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

image-20230402094218021

预备知识

什么是_指令_:

C语言代码–>翻译为机器语言指令

指令分为:1.特权指令2.非特权指令

CPU通过判断处理器的状态:1.用户态2.核心态来判断执行特权指令和非特权指令

两种程序:1.内核程序2.应用程序

内核程序:既可以执行特权指令,也可以执行非特权指令,运行在核心态

应用程序:只能执行非特权指令,运行在用户态

操作系统的内核

操作系统可以再细分,最接近硬件层次的是内核,其余部分是非内核功能

内核又可以细分:

  1. 对系统资源进行管理的功能:进程管理、存储器管理,设备管理等功能
  2. 时钟管理,中断处理,原语(设备驱动,CPU切换)

时钟管理:实现计时功能

原语:是一种特殊的程序,最接近硬件的部分,这种程序的运行具有原子性,运行时间短,调用频繁

操作系统分法:大内核和微内核在这里插入图片描述

image-20230402095943718

中断和异常

中断机制的引入实现了多道程序并发执行的本质:发生中断就意味着需要操作系统的介入,开展管理工作。

流程:

用户态:CPU收到计时部分发出的中断信号,切换为核心态对中断进行处理

—–>

核心态:操作系统介入,由用户态变为核心态,对中断进行处理。

  1. 当中断发生时,CPU立即进入核心态

    原因:由于操作系统的管理工作(进程切换和分配I/O设备等)需要使用特权指令。因此CPU要从用户态转为核心态

  2. 中断发生后:当前运行的进程暂停运行,并由操作系统内核对中断进行处理

有了中断,才能实现多道程序并发执行

用户态切换为核心态是通过中断唯一实现

核心态到用户态通过执行一个特权指令,将程序状态字(PSW)的标志位设置为用户态

中断的分类

分为:内中断和外中断

内中断(中断信号来源CPU内部,与当前执行指令有关)

自愿中断:指令中断

强迫中断:硬件故障,软件中断

外中断(中断信号来自外部,与当前执行的指令无关)

外设请求:I/O操作完成发出的中断信息

人工干预:用户强行终止一个进程

外中断的处理过程:

image-20230402103851784

其中需要注意的是,检测到中断信号的时候,需要保护被中断进程的CPU环境!!

系统调用

知识回顾:操作系统提供了很多的接口,其中程序接口就是由一组系统调用组成的

系统调用是操作系统提供给应用程序使用的接口,应用程序可以发出系统调用来获得操作系统的服务

作用:用户程序操作的过程中,凡是涉及到与资源相关的

分类(按功能分类)

image-20230402105613441

系统调用的相关处理涉及到对系统资源的管理,对进程的控制,这些功能需要执行一些特权指令才能完成,因此系统调用的相关处理需要在核心态下进行

系统调用和库函数区别

image-20230402110216954

系统调用背后的过程:

image-20230402111051258

注意中的3条非常重要