写在最前面

计算机组成原理课程中也有关于计算机系统概论的介绍,所以这里就查缺补漏,多记录操作系统相关的内容,从整体上立起框架。

!!哇卡哇卡!!:后续学习部分的内容也不会全盘记录,而是与已有内容参照查缺补漏、多思考、多实践、加深理解

基本概念、基本原理、算法策略、实验实践就是以后学习的基本流程。

什么是操作系统?

操作系统是最核心的系统软件,其主要用于管理系统资源控制程序执行改善人机界面合理组织计算机工作流程

各个层次介绍

从资源管理的角度来看

资源管理就是操作系统在相互竞争的应用程序之间合理的完成硬件资源的分配、使用、回收

资源管理的三大技术:复用虚化抽象


复用技术介绍:

复用的目的:解决物理资源不足的问题

复用的分类时分复用空分复用

时分复用是指资源可以从时间上分割成更小的单位,多个进程可以轮流使用某一个资源。

典型示例:多进程并发切换

空分复用是指资源可以从空间上分割成更小的单位分配给进程使用

典型示例:主存和磁盘的资源(都有更小的单位用于分配,如:页框、扇区等)


虚化技术介绍

虚化的目的:解决物理资源数量不足、提高服务的能力和水平

虚化的定义对资源进行转化、模拟和整合,使得一个或多个物理资源转变为一个或多个逻辑上的对应物。

虚化的常见示例

  1. 虚拟内存。为每一个进程提供同样大小的虚拟内存空间,虚拟内存地址通过页表映射到实际的物理页框。
  2. 虚拟设备。如虚拟打印机、虚拟多屏幕等技术

抽象技术的介绍

抽象的目的:与复用、虚化的目的不同,抽象主要是用于解决系统复杂性,重点解决资源易用性

抽象的定义资源抽象是通过编制软件来屏蔽硬件资源的物理特性和实现细节,简化对硬件资源的操作、控制和使用。

抽象的分类进程抽象虚存抽象文件抽象(根据所抽象的物理硬件的不同)

进程抽象:是对写入内存正在执行的程序在处理器上创造性的状态集的抽象

简单来说:进程是对处理器的抽象。即程序以进程为单位进行执行,从而实现多进程的并发。

虚存抽象:是对主存与磁盘资源交换的抽象

也就是虚拟内存,通过换入换出机制实现一个规整的内存空间。

文件抽象:是对磁盘的抽象(放大范围:也可以说是对设备的抽象

即通过文件的字节映射到磁盘中具体的扇区。计算机的所有设备都可以抽象为一个个文件,通过调用这些文件实现调用访问,提供一致性的访问接口。

从系统调用的角度

关于系统调用的部分内容可以参考本专题这一篇文章

所以这里侧重于记录一些概念、梳理一下框架。

操作系统通过系统调用将对硬件的管理功能提供给用户。

(1)内核提供的一系列具备特定功能的服务例程;通过一组称为系统调用的接口呈现给用户 。
(2)系统调用把应用程序的请求传送至内核,调用相应服务例程完成所需处理,将处理结果返回给应用程序
(3)内核的主体是系统调用的集合,内核可以看成是特殊的公共子程序

系统调用的作用资源控制与资源抽象

前者保证系统的安全性、后者通过一致性接口提高编程效率


=

见上图,给出了应用程序库函数系统调用的分层关系,这三者都是属于用户态层次,通过系统调用进入内核以实现对硬件的操作。


见上图,给出了系统调用的处理过程,通过图中内容我们可以得出系统调用实现的几个主要组件

  1. 编写服务例程。也就是执行具体功能的程序代码
  2. 系统调用表。一般是system call后会根据系统调用功能号对应到具体的服务例程地址
  3. 陷阱处理机制。即在系统调用时保护原有程序的执行现场,同时在返回时可以将现场恢复

在上参考的文章中有系统调用的实现流程,这里重点介绍一些调用过程中参数的传递:

  1. 通过陷入指令进行传递。在指令后规定的地址中放入参数(直接参数)或在紧邻的空间中存储参数的地址(间接参数)
  2. 通过开辟堆栈来存储参数
  3. 通过通用寄存器来存储参数或者参数地址


系统调用与函数调用的不同

写在最后:本篇文章只是对操作系统的从系统调用、资源管理的角度进行概括性介绍,在后续学习过程中会对各部分内容进行详细具体的描述。