操作系统的概念

目录

操作系统的概念

操作系统的功能和目标

做为系统资源的管理者

向上层提供方便易用的服务

作为最接近硬件的层次

操作系统的四个特征 

并发:

 共享

 虚拟

扫描二维码关注公众号,回复: 14646411 查看本文章

异步

OS的发展与分类

单道批处理系统:

多道批处理系统

分时操作系统

实时操作系统

其他几种操作系统

 操作系统的运行机制

内核态与用户态的切换

 中断

中断的作用:

中断的类型

中断(广义上的中断)的分类

外中断(也称中断,狭义上的中断)

中断机制的原理 

系统调用 

什么是系统调用

 什么时候用到系统调度

 系统调用的过程

 操作系统体系结构

操作系统的内核


1.什么是操作系统

2.操作系统是用来做什么

3.操作系统的四个特性

操作系统的概念

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

总结:

  • 操作系统是系统资源的管理者
  • 向上提供方便易用的服务
  • 是最接近硬件的软件

操作系统的功能和目标

做为系统资源的管理者

功能

  •  文件管理  // 从文件夹中打开需要的文件资源
  • 存储器管理  //把要执行的程序放入内存
  • 处理机管理  //对应的进程被处理
  • 设备管理 // 打开音响或摄像头等等

目标:安全,高效

向上层提供方便易用的服务

封装思想:
封装思想:操作系统把一些 将丑陋的硬件功能封装成简单,易用的服务,使用户能更方便地使用计算机,用户无需 关心底层硬件的原理,只需 要对操作系统发出命令即可

 服务:

  • 图形化用户接口
  • 联机命令接口    联机命令接口=交互式命令接口
  • 脱机命令接口    实例脱机命令接口=批处理命令接口
  • 程序接口    通过程序间接使用
    前三个用户可以直接操作,最后一个要系统调用

作为最接近硬件的层次

目标

需要实现对硬件机器的拓展

操作系统对硬件机器的拓展:将CPU、内存、磁盘、显示器、键盘等硬件合理地组织起来,让各种硬件 能够相互协调配合,实现更多更复杂的功能 ,普通用户无需关心这些硬件在底层是怎么组织起来工作的,只需直接使用操作系统提供的接口即可
类似:多个零件组成的汽车,实现了汽车的功能

操作系统的四个特征 

并发:

指两个或多个事件在同一时间间隔内发生。这些事件宏观上是同时发生的,但微观上是交替发生的。
与之类似的概念并行:指两个或多个事件在同一时刻同时发生。
操作系统的并发性
指计算机系统中“同时”运行着多个程序,这些程序宏观上看是同时运行着的,而微观 上看是交替运行的。
操作系统就是伴随着“多道程序技术”而出现的。因此, 操作系统和程序并发是一起诞生的
扩展
单核 CPU 同一时刻只能执行 一个程序 ,各个程序只能 并发 地执行
多核 CPU 同一时刻可以同时执行 多个程序 ,多个程序可以 并行 地执行

 共享

共享 即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。
两种共享方式
  • 互斥共享方式:允许多个多个进程访问系统某些资源,但是同一个时间段,只允许一个进程。
  • 同时共享方式:允许多个进程在同一时间段内,同时访问系统的某些资源

注意:所谓的“同时”往往是宏观上的,而在微观上,这些进程可能是交替地对该资源进行访问(即分时共享)

并发与共享的关系

并发与共享互为存在条件

  • 如果没有并发,也就无法多个进程访问资源
  • 如果没有共享,多个进程也就不能一起访问资源

 虚拟

虚拟 是指把一个物理上的实体变为若干个逻辑上的对应物。物理实体(前者)是实际存在的,而逻辑上 对应物(后者)是用户感受到的。
虚拟技术:
  • 空分复用技术(如虚拟存储器技术):列如一个4G内存处理多个程序超过4G,依旧能运行
  • 时分复用技术(如虚拟处理机器):如多个程序被一个CPU处理,在用户看来由多个CPU为他服务
显然,如果失去了并发性,则一个时间段 内系统中只需运行一道程序,那么就失去 了实现虚拟性的意义了。因此,没有并发性,就谈不上虚拟性

异步

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

综上所述:没有并发和共享,就谈不上虚拟和异步,因此并发和共享是操作系统的两个最基本的特征 

OS的发展与分类

手工操作阶段

主要缺点:用户独占全 机、人机速度矛盾导致 资源利用率极低

单道批处理系统:

  • 主要优点:缓解了一定 程度的人机速度矛盾, 资源利用率有所提升。
  • 主要缺点:内存中仅能 有一道程序运行,只有 该程序运行结束之后才 能调入下一道程序。 CPU有大量的时间是在 空闲等待I/O完成。资源 利用率依然很低。多道批处理系统分时操作系统(实现了人机交互)

多道批处理系统

主要优点:多道程序 并发 执行, 共享 计算机 资源。 资源利用率大幅提升 CPU 和其他资 源更能保持“忙碌”状态,系统吞吐量增大。
主要缺点:用户响应时间长, 没有人机交互 功能 (用户提交自己的作业之后就只能等待
计算机处理完成,中间不能控制自己的作业 执行。eg :无法调试程序 / 无法在程序运行过
程中输入一些参数)

分时操作系统

计算机以 时间片 为单位 轮流为各个用户 / 作业服务 ,各个用户可通过终端与计算机进行交互。
主要优点:用户请求可以被即时响应, 解决了人机交互问题 。允许多个用户同时使用一台计算机,并且用 户对计算机的操作相互独立,感受不到别人的存在。
主要缺点: 不能优先处理一些紧急任务 。操作系统对各个用户 / 作业都是完全公平的,循环地为每个用户 /
作业服务一个时间片,不区分任务的紧急性

实时操作系统

主要优点:能够优先响应一些紧急任务,某些紧急任务不需时间片排队。
在实时操作系统的控制下,计算机系统接收到外部信号后及时进行处理,并且 要在严格的时限内处理完事 件 。实时操作系统的主要特点是 及时性和可靠性
实时操作系统又分 硬时操作系统 (必须在严格时间内执行), 软时操作系统 (偶尔可以违反时间规定)

其他几种操作系统

网络操作系统:是伴随着计算机网络的发展而诞生的,能把网络中各个计算机有机地结合起来,实现数据传 送等功能, 实现网络中各种资源的共享(如文件共享)和各台计算机之间的通信 。(如: Windows NT 就是 一种典型的网络操作系统,网站服务器就可以使用)
分布式操作系统:主要特点是 分布性和并行性 。系统中的各台计算机地位相同, 任何工作都可以分布在这些 计算机上,由它们并行、协同完成这个任务。
个人计算机操作系统:如 Windows XP MacOS ,方便个人使用

 操作系统的运行机制

应用程序VS内核程序

  • 我们普通程序员写的程序就是“应用程序
  • 微软、苹果有一帮人负责实现操作系统,他们写的是“内核程序”,是整个系统的管理者
由很多内核程序组成了“ 操作系统内核 ”,或简称“ 内核( Kernel
内核 是操作系统最重要最核心的部分,也是 最接近硬件的部分
甚至可以说,一个操作系统只要有内核就够了( eg Docker—> 仅需 Linux 内核)
操作系统的功能未必都在内核中,如图形化用户界面 GUI

特权指令VS非特权指令

程序运行的过程其实就 是CPU执行一条一条的 机器指令的过程
在CPU设计和生产的时 候就划分了特权指令和 非特权指令,因此CPU 执行一条指令前就能判断出其类型
  • 非特权指令应用程序只能使用“非特权指令”,如: 加法指令、减法指令等
  • 特权指令:操作系统内核作为 “管理者”,有时会让CPU执行一些 “特权指令”,如:内存清零指令。这些指令影响重大, 只允许“管理者”——即操作系统内核来使用

内核态VS用户态

为了保护设备,操作系统不可能让所有的程序都能轻松地访问到任何的文件,将处理器CPU分为两种模式,内核模式和用户模式,诸如一些修改寄存器内容的命令,比如次磁盘的IO操作、访问物理页内存、访问网络上的数据包,这些涉及内核的操作只能是通过高权限的内核模式下进行,用户模式下没有权限进行。

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

 拓展:CPU 中有一个寄存器叫 程序状态字寄存器(PSW,其中有个二进制位,1表示

“内核态”, 0 表示“用户态”
别名 :内核态 = 核心态 = 管态 ;用户态 = 目态

内核态与用户态的切换

内核态的 用户态: 执行一条 特权指令 —— 修改 PSW 的标志位为“用户态”,这个动作意味着操作系统 将主动让出CPU 使用权
用户态的 内核态: “中断” 引发, 硬件自动完成变态过程 ,触发中断信号意味着操作系统将强行夺 回CPU 的使用权

 中断

中断的作用:

  • “中断”是让操作系统内核夺回CPU使用权的唯一途径
  • 如果没有“中断”机制,那么一旦应用程序上CPU运行,CPU就会一直运行这个应用程序,那么并发也就不存在,可见中断有多重要

中断的类型

  • 内中断:与当前执行的指令有关, 中断信号来源于CPU内部
  • 外中断:与当前执行的指令无关, 中断信号来源于CPU外部

中断(广义上的中断)的分类

内中断(又称“异常”)

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

外中断(也称中断,狭义上的中断)

  • 时钟中断
  • I/O中断

大多数的教材、试卷中,“中断”特指狭义的中断,即外中断。而内中断一般称为“异常 

中断机制的原理 

不同的中断信号,需要用不同的中断处理程序来处理。当CPU检测到中断信号后,会根据中断信号的类型去查询“中断向量表”,以此来找到相应的中断处理程序在内存中的存放位置。显然,中断处理 程序一定是内核 程序,需要运行 在“内核态”

检查中断

  • 内中断:CPU在执行指令时会检查是否有异常中断发射
  • 外中断:每个指令末期,CPU都会检查是否有外中断信号需要执行

系统调用 

什么是系统调用

  • “系统调用”是操作系统提供给应用程序(程序员/编程人员)使用的接口,可以理解为一种可供应用 程序调用的特殊函数,应用程序可以通过系统调用来请求获得操作系统内核的服务
  • 系统内核通过包装一些能够实现特定功能的特殊硬件指令和硬件状态,即为内核函数,通过一组称为系统调用(system call)的接口呈现给用户,为系统调用而封装出来的API也达数百个。

 什么时候用到系统调度

应用程序通过 系统调用 请求操作系统的服务。而系统中的各种共享资源都由操作系统内核统一掌管,因此 凡是 与共享资源有关的操作(如存储分配、I/O 操作、文件管理等),都必须通过系统调用的方式向操作系统内核提 出服务请求 ,由操作系统内核代为完成。这样 可以保证系统的稳定性和安全性 ,防止用户进行非法操作

 系统调用的过程

传递系统调用 参数(寄存器) -> 执行陷入指令( 用户态)-> 执行相应的内核态请求处理系统调用 (内核态 -> 返回 应用程序
注意:
1. 陷入指令 是在 用户态 执行的,执行陷入指令之后立即引发一个 内中断 ,使 CPU 进入内核态
2. 发出系统调用请求 是在 用户态 ,而 对系统调用的相应处理 内核态 下进行

 操作系统体系结构

操作系统的内核

内核 是操作系统最基本、最核心的部分。
实现操作系统内核功能的那些程序就是 内核程序

 注意:用户态与内核态之间的转化的过程是有成本的,要消耗不少时间,频繁地变态会降低系统性能

猜你喜欢

转载自blog.csdn.net/maojiaoliang/article/details/124377257