操作系统 - 操作系统定义与历史

什么是操作系统

操作系统是在硬件和应用之间的软件层

“操作系统是管理硬件资源、控制程序运行、改善人机界面 和为应用软件提供支持的一种系统软件。” [计算机百科全书(第2版)]

操作系统 = 管理 + 服务

操作系统为应用提供的一些服务:

  1. 为应用提供计算资源的抽象
    • CPU:进程/线程,数量不受物理CPU的限制
    • 内存:虚拟内存,大小不受物理内存的限制
    • I/O设备:将各种设备统一抽象为文件,提供统一接口
  2. 为应用提供线程间的同步
    • 应用可以实现自己的同步原语(如spinlock)
    • 操作系统提供了更高效的同步原语(与线程切换配合, 如pthread_mutex)
  3. 为应用提供进程间的通信
    • 应用可以利用网络进行进程间通信(如loopback设备)
    • 操作系统提供了更高效的本地通信机制(具有更丰富的语义,如pipe)

操作系统对应用的管理:

  1. 生命周期的管理

    • 应用的加载、迁移、销毁等操作
  2. 计算资源的分配

    • CPU:线程的调度机制
    • 内存:物理内存的分配
    • I/O设备:设备的复用与分配
  3. 安全与隔离

    • 应用程序内部:访问控制机制
    • 应用程序之间:隔离机制,包括错误隔离和性能隔离

管理和服务的目标有可能存在冲突

  • 服务的目标:单个应用的运行效率最大化

  • 管理的目标:系统的资源整体利用率最大化

– 例:单纯强调公平性的调度策略往往资源利用率低,如细粒度的round-robin导致大量的上下文切换

操作系统的定义:

  • 操作系统的核心功能:
    • 将有限的、离散的资源,高效地抽象为无限的、连续的资源
  • 从软件角度的定义:
    • 硬件资源虚拟化+管理功能可编程
  • 从结构角度的定义:
    • 操作系统内核+系统框架

操作系统的历史

早期操作系统:只是一些库

一开始,操作系统只是一组常用函数库。例如,不是让系统中的每个程序员都编写低级 I/O 处理代码,而是让操作系统提供这样的 API,这样开发人员的工作更加轻松。

批(batch)处理:先把一些工作准备好,然后由操作员以“分批” 的方式运行(操作员决定运行作业的顺序)。

缺点:因为计算机闲置成本较高,因此此时的计算机缺少交互。

超越库:保护

操作系统运行的代码是特殊的。因为OS控制了设备,因此对待它的方式应该与对待正常应用程序代码的方式不同。(若OS以库的方式提供磁盘I/O,那么任何程序都可以读取磁盘,而不存在隐私与隔离)

出于保护目的,划分出用户模式和内核模式。

  • 用户模式(user mode)。在用户模式下运行的代码会受到限制,应用程序不能完全访问硬件资源。例如,I/O请求等。
  • 内核模式(kernel mode):在内核模式下,操作系统可以完全访问系统的硬件,因此可以执行诸如发起 I/O 请 求或为程序提供更多内存等功能。

使用系统调用(system call)将控制转移(跳转)到 OS 中,同时提高硬件特权级别(hardware privilege level)。

image-20210915234007835

用户应用程序以所谓的用户模式(user mode)运行,这意味着硬件限制了应用程序的功能。

在发起系统调用时,硬件将控制转移到预先指定的陷阱处理程序(trap handler),并同时将特权级别提升到内核模式(kernel mode)。

在内核模式下,操作系统可以完全访问系统的硬件,因此可以执行诸如发起 I/O 请求或为程序提供更多内存等功能。

当操作系统完成请求的服务时,它通过特殊的陷阱返回 (return-from-trap)指令将控制权交还给用户,该指令返回到用户模式,同时将控制权交还给应用程序,回到应用离开的地方。

以下为printf的使用过程:

image-20210916151035093

缺点:用户程序发生I/O时,CPU利用率较低。

多道批处理系统

多道程序

由于希望更好地利用机器资源,多道程序(multiprogramming)变得很普遍。 操作系统不是一次只运行一项作业,而是将大量作业加载到内存中甚在它们之间快速切换, 从而提高 CPU 利用率。这种切换非常重要,因为 I/O 设备很慢。

在 I/O 进行和任务中断时,要支持多道程序和重叠运行。多道程序给操作系统带来的挑战:

  1. 内存保护(memory protection),我们不希望一个程序能够访问另一个程序的内存。
  2. 并发(concurrency)问题。
  3. 在中断存在的情况下,确保操作系统正常运行是一个很大的挑战。
多道批处理系统

早期的操作系统可以称为单道批处理系统。在单道批处理系统中,内存中仅有一道作业,它无法充分利用系统中的所有资源,致使系统性能较差。为了进一步提高资源的利用率和系统吞吐量,在20世纪60年代中期又引入了多道程序设计技术,由此而形成了多道批处理系统.

多道批处理系统有两个特点:

  1. 多道:系统内可同时容纳多个作业。这些作业放在外存中,组成一个后备队列,系统按一定的调度原则每次从后备作业队列中选取一个或多个作业进入内存运行,运行作业结束、退出运行和后备作业进入运行均由系统自动实现,从而在系统中形成一个自动转接的、连续的作业流。

  2. 成批:在系统运行过程中,不允许用户与其作业发生交互作用,即:作业一旦进入系统,用户就不能直接干预其作业的运行。

缺点:缺少交互,响应时间较长。

分时系统

多道程序设计允许处理器同时处理多个批作业,还可处理多个交互作业。对于后者而言,由于多个用户分享处理器时间,因而该技术称为分时(time sharing)。

在分时系统中,多个用户可以通过终端同时访问系统,由操作系统控制每个用户程序在很短的时间内交替执行

因此,如果有n个用户同时请求服务,若不计操作系统开销,每个用户平均只能得到计算机有效速度的1/n。但由于人的反应时间相对较慢,因此设计良好的系统响应时间应可以接近于专用计算机的响应时间。
批处理和分时都使用了多道程序设计,其主要要差别如下表所示。

image-20210916000542070

实时系统

在指定或者确定的时间内完成系统功能以及对外部或内部事件在同步或异步时间内做出响应的系统,实时意思就是对响应时间有严格要求,要以足够快的速度进行处理。分为硬实时和软实时两种。

硬实时:某个动作必须绝对地在规定的时刻发生,否则会产生严重后果。(工业过程控制、民用航空、军事)

软实时:希望能满足时限,但页允许偶尔违反最终时限,偶尔违反不会产生严重后果。(多媒体系统)

reference

[1] 操作系统导论(ostep)

[2]上海交通大学并行与分布式系统研究所-操作系统的前世今生

[3] 操作系统-精髓与设计原理

[4] 现代操作系统

[5] 操作系统概念

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值