01_计算机系统概述

计算机系统概述

操作系统的概念(定义)

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

他是计算机系统中最基本的系统软件。

操作系统的层次结构:

image-20230911122112971

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

系统资源的管理者:

  • 处理器管理
  • 存储器管理
  • 文件管理
  • 设备管理

操作系统的功能和目标——向上层提供方便易用的服务。

  1. 直接给用户使用的:
  • GUI:图形化用户接口。

  • 联机命令接口 = 交互式命令接口

  • 脱机命令接口 = 批处理命令接口

  1. 该软件/给程序员使用的:
  • 程序接口:可以在程序中进行系统调用来使用程序接口。普通用户不能直接使用程序接口,只能通过程序代码间接使用。
  1. 操作系统的功能和目标——作为最接近硬件的层次
  • 需要实现对硬件机器的拓展
  • 没有任何软件支持的计算机称为裸机。
  • 通常把覆盖了软件的机器称为扩充机器,又称之为虚拟机。

操作系统的特征

并发

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

对照 并行:指两个或多个事件在同一时刻发生。

操作系统的并发性:计算机系统中“同时”运行着多个程序,这些程序宏观上看是同时运行的,而微观上看是交替运行的。

注意:单核CPU同一时刻只能执行一个程序,各个程序只能并发的执行。

多核CPU同一时刻可以同时执行多个程序,多个程序可以并行的执行。

共享

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

两种资源共享方式:

互斥共享方式:系统中的某些资源,虽然可以提供给多个进程使用,但一个时间段内只允许一个进程访问该资源。

同时共享方式:系统中的某些资源,允许一个时间段内由多个进程“同时”对他们进行访问。eg:同时共享方式:使用QQ发送文件A,同时使用微信发送文件B。宏观上看,两边都在同时读取并发送文件,说明两个进程都在访问硬盘资源,从中读取数据。微观上看,两个进程是交替着访问硬盘的。

并发和共享互为存在条件

虚拟

虚拟是指把一个物理上的实体变为若干个逻辑上的对应物,物理实体上存在的,而逻辑上对应物是用户感受到的。

没有并发性就谈不上虚拟性。

异步

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

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

操作系统的发展与分类

手工操作阶段

缺点:人机速度矛盾。

批处理阶段——单道批处理技术

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

优点是:环节人机速度矛盾。

缺点是:资源利用率依然很低。

批处理阶段——多道批处理技术

多道程序并发执行,共享计算机资源,资源利用率大幅度提升

但是没有人机交互功能。

分时操作系统

计算机以时间片为单位轮流为各个用户/作业服务

优点是:提供人机交互功能。

但是不能优先处理一些紧急任务。

实时操作系统

优点是:能优先处理紧急任务

硬实时系统

必须在绝对严格的规定时间内完成处理。

软实时系统

能接受偶尔违反时间规定。

后面还有:网络操作系统 分布式操作系统 个人计算机操作系统

操作系统的运行机制

预备知识:程序是怎样运行的。

代码-> 编译器进行编译 -> 机器指令(二进制) 一条高级语言的代码翻译过来可能会对应多条机器指令。

程序运行的过程其实是CPU执行一条一条机器指令的过程。

指令:就是处理器CPU能够识别、执行的最基本的命令。

内核程序:

普通程序员写的程序就是“应用程序”;

应用程序:

由很多内核程序组成了“操作系统内核”,简称“内核”;

内核是操作系统最核心的部分,也是最接近硬件的部分。

特权指令

这些指令影响重大,只允许"管理者"——操作系统的内核来使用。

在CPU设计和生产的时候就划分了特权指令和非特权指令,因此CPU执行一条指令前就能判断出其类型。

内核态

处于内核态时,说明此时正在运行的是内核程序,此时可以执行特权指令。

用户态

处于用户态时,说明此时正在运行的是应用程序,此时只能执行非特权指令。

CPU中有一个寄存器叫做程序状态字寄存器(PSW),其中有个二进制位,1表示“内核态”,0表示“用户态”。(或者相反)。

中断和异常

中断会使CPU由用户态变为内核态,使操作系统重新夺回对CPU的控制权。

内核态 -> 用户态 :执行一条特权指令——修改PSW的标志位为用户态。

用户态 -> 内核态 :由中断引发,硬件自动完成变态过程。

中断的作用:

  1. 让操作系统内核强行夺回CPU的控制权
  2. 使CPU从用户态变为内核态。

中断的分类

内中断(也称异常、例外)

  • 陷阱、陷入(trap):由陷入指令引发,是应用程序故意引起的
  • 故障(fault):由错误条件引起,可能被内核程序修复。内核程序修复故障后会把CPU的使用权还给应用程序,让他继续执行下去。如:缺页故障。
  • 终止(abort):由致命错误引起,内核程序无法修复该错误,因此一般不再将CPU的使用权还给引发中止的应用程序,而是直接终止该应用程序。如:整数除0、非法使用特权指令。

外中断(也称“中断”)

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

  • 时钟中断:
  • I/O中断请求:

中断机制的基本实现原理

  • 检查中断信号
    • 内中断:CPU在执行指令时会检查是否有异常发生。
    • 外中断:每个指令周期末尾,CPU都会检查是否有外中断信号需要处理。
  • 找到相应的中断处理程序:通过"中断向量表"实现。

系统调用

什么是系统调用?

操作系统作为用户和计算机硬件之间的接口,需要向上提供一些简单易用的服务。主要包括命令接口和程序接口。其中,程序接口由一组系统调用组成。

“系统调用”是操作系统提供给应用程序(程序员/编程人员)使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以通过系统调用来请求获得操作系统内核的服务。

系统调用与库函数的区别

image-20230922205839335

普通应用程序:可直接进行系统调用,也可使用库函数。有的库函数涉及系统调用,有的不涉及。

编程语言: 向上提供库函数,有时会将系统调用封装成库函数,以隐藏系统调用的一些细节,使程序员编程更加方便。

操作系统: 向上提供系统调用,使得上层程序能请求内核的服务。

不是所有的库函数都会用到系统调用,特权指令。例如“取绝对值”。

涉及到系统调用的库函数:“创建一个新文件夹”,需要用到系统调用,特权指令。

为什么系统调用是必须的

打印过程中,如果两个进程可以随意的、并发的共享打印机的资源,会发生什么情况?

结果使两篇要打印的论文的内容混杂在一起了

解决方法:由操作系统内核对共享资源进行统一的管理,并向上提供“系统调用”,用户进程想要使用打印机这种共享资源,只能通过系统调用向操作系统内核发出请求。内核会对各个请求进行协调处理。

什么功能要用系统调用

  • 设备管理
  • 文件管理
  • 进程管理
  • 进程通信
  • 内存管理

应用程序通过系统调用请求操作系统的服务。而系统中的各种共享资源都由

系统调用的过程

image-20231120103111339

操作系统的引导

详见实验一:操作系统的启动

操作系统引导(boot)—— 开机的时候,怎么让操作系统运行起来。

  • CPU从一个特定主存地址开始,取指令,执行ROM中的引导程序(先进行硬件自检,再开机)。
  • 将磁盘的第一块一一主引导记录读入内存,执行磁盘引导程序,扫描分区表。
  • 从活动分区(又称主分区,即安装了操作系统的分区)读入分区引导记录,执行其中的程序。
  • 从根目录下找到完整的操作系统初始化程序(即启动管理器)并执行,完成“开机”的一系列动作。

虚拟机

image-20231120102459837

image-20231120102357510

posted @ 2023-09-12 21:37  彬彬zhidao  阅读(104)  评论(0编辑  收藏  举报