【操作系统】 第一章 概述

操作系统系列文章读者需要具备一定计算机基础知识。

第1节 概念和功能

概念

操作系统是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境,它是计算机系统中最基本的系统软件。

功能

我们先来看计算机层次结构图,由图我们可以看出操作系统处于用户和硬件的中间层。当操作系统处于这一层次,它应该提供什么功能?

图1.计算机层次结构图
层级图

功能1:提供资源管理

作为用户和硬件的中间层,应该具备资源管理的功能。

功能2:提供调用硬件的接口

由于用户无法直接操作硬件,需要由操作系统提供接口。

功能3:实现硬件扩展

作为最接近硬件的层次,需要扩展对硬件的扩展。

第2节 特性

操作系统具有4个特性,分别为并发、共享、虚拟、异步。

特性1:并发

并发是指计算机是单核CPU,要同时执行2个程序,CPU需要交替执行这两个程序。

注意:并发不等于并行,并行是指计算机是两核CPU,要同时执行2个程序,两核CPU可以同时执行这两个程序。

特性2:共享

共享分为互斥共享和同时共享。

  • 互斥共享指同一时间内,只允许一个进程使用。如:电脑中的摄像头,同一时间,只允许一个应用程序使用它。
  • 同时共享指同一时间内,允许多个进程使用。如:一个txt文件,可使用记事本,editPlus等多个应用程序同时打开。

特性3:虚拟

虚拟是将一个物理上的实体变成若干个逻辑上的对应物。虚拟技术有空分复用技术和时分复用技术。

  • 空分复用技术是指利用空间的分割实现复用的一种方式。如:Window10操作中的虚拟内存,将磁盘中的一部分作为主存使用。
  • 时分复用技术是指利用时间的分割实现复用的一种方式。如:CPU在并发执行多个程序。

特性4:异步

异步是指让CPU暂时搁置当前请求的响应,处理下一个请求,当通过轮询或其他方式得到回调通知后,重新运行。

第3节 运行机制和体系结构

运行机制

指令就是处理器(CPU)能识别、执行的最基本命令。当我们通过高级编程语言编写一条代码可能对应多条指令。出于安全考虑,指令有特权指令和非特权指令。

  • 特权指令:安全级别高、只允许内核程序执行。如:内存清零
  • 非特权指令:普通指令。如:执行加法运算

同样CPU也有核心态和用户态。

  • 核心态:当处理器处于核心态,即可执行特权指令和非特权指令。
  • 用户态:当处理器出于用户态,只能执行非特权指令。通过程序状态字寄存器(PSW)中的某标志位来识别状态。

程序也有内核程序和用户程序。

  • 内核程序:操作系统的内核程序是系统的管理者,运行在核心态的程序。
  • 用户程序:普通用户程序因为只能执行非特权指令,运行在用户态的程序。

体系结构

内核是计算机上配置的底层软件,是操作系统最基本、最核心的部分。实现操作系统内核功能的程序就是内核程序。内核程序有时钟管理、中断处理、原语等,如图2。

图2.计算机层次结构图
在这里插入图片描述

时钟管理

实现计时功能,操作系统所有管理工作都是通过计时实现的。

中断处理

负责实现中断机制。中断是CPU从用户态进入核心的唯一途径,也是实现并发的一种技术。

原语

一种特殊的程序,具有原子性。

原子性是指事务的不可分割性,一个事务的所有操作要么不间断地全部被执行,要么一个也没有执行。

内核程序划分:大内核和微内核

不同操作系统,内核功能的划分是不一样的。存在两种划分方式,分别为大内核和微内核。

  • 大内核:将时钟管理、中断处理、原语和资源管理(进程管理、存储器管理、设备管理等)都作为系统内核,运行在核心态。

优点:高性能,缺点:内核代码庞大,结构混乱,难以维护

  • 微内核:只把将时钟管理、中断处理、原语的功能保留在内核。

优点:内核功能少,结构清晰,方便维护缺点:需要频繁在核心态和用户态之间切换,性能低

第4节 中断

第3节中提到了中断处理,那么中断是什么?

定义

中断是为了实现多道程序并发执行而引入的一种技术。当发生中断,就意味着需要操作系统接入开展管理工作,CPU会立即进入核心态。

“中断”是CPU从用户态进入核心的唯一途径。

分类:内中断和外中断

中断分为内中断和外中断。

  • 内中断也称异常、例外、陷入,是指来自CPU内部的中断信号,有指令中断和强迫中断,如:系统调用时,使用的房管指令、程序异常等。
  • 外中断是指来自CPU外部的中断信号,有外设请求和人工干预,如:用户强行终止了一个进程

第5节 系统调用

定义

操作系统提供“系统调用”功能,当用户进程想用共享资源,只能通过系统调用项操作系统发出请求,方便操作系统对其协调管理。

应用程序通过系统调用来请求操作系统的服务,保证系统的稳定性和安全性。

系统调用和库函数的区别

系统调用与库函数的区别:系统调用是操作系统向上提供服务。应用程序通过系统调用来请求获得操作系统的服务。库函数是指编程语言的封装。有些库函数会将系统调用进行封装,以隐藏系统调用的一些细节,方便普通应用程序使用。

系统调用逻辑:传递系统调用参数,执行陷入指令(用户态),执行系统调用相应服务程序(核心态),返回用户程序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

瑾析编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值