计算机操作系统1--引论(整理)

计算机操作系统1–引论

文章目录

  • 计算机操作系统1--引论
    • 0 基本概念
    • 1 操作系统的目标和作用
      • 1.1 目标
      • 1.2 作用
    • 2 操作系统的基本特性
      • 2.1 并发
      • 2.2 共享
      • 2.3 虚拟
      • 2.4 进程的异步性
    • 3 操作系统的主要功能
      • 3.1 处理机管理功能
      • 3.2 存储器管理功能
      • 3.3 设备管理功能
      • 3.4 文件管理功能
      • 3.5 操作系统与用户之间的接口
    • 5 OS的结构
      • 5.1 传统操作系统结构
      • 5.2 客户/服务器模式
      • 5.3 面向对象的程序设计技术
      • 5.4 微内核OS结构
        • 用户态与内核态
          • 用户态与内核态之间的转换
          • 真题
    • 操作系统的运行机制

0 基本概念

操作系统(Operating System, OS)是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充。

OS是现代计算机系统中最基本和最重要的系统软件,其他的系统软件还有:

  • 编译程序
  • 数据库管理系统

1 操作系统的目标和作用

1.1 目标

  • 方便性
    将用户用高级语言书写的程序翻译为机器代码
  • 有效性
    提高系统资源利用率
  • 可扩充性
    与OS的结构关系紧密,OS结构有:
    • 无结构
    • 模块化结构
    • 层次化结构
    • 微内核结构(具有良好的可扩充性)
  • 开放性
    软、硬件按照一系列标准生产,提高相互兼容性。

1.2 作用

1. OS作为用户与计算机硬件系统之间的接口
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-P4ySjD08-1600074074203)(en-resource://database/1216:1)]

2. OS作为计算机系统资源的管理者
计算机系统包含多种硬件和软件资源,可归纳为四类:

  • 处理机
  • 存储器
  • I/O设备
  • 文件(数据和程序)

3. OS实现对计算机资源的抽象

  • 在裸机上覆盖一层I/O设备管理软件,使用户无需了解计算机物理接口的实现细节,即可使用计算机硬件资源。

    覆盖了I/O设备管理软件的机器称为扩充机器虚拟机

  • 文件管理软件,覆盖在第一层软件(I/O管理软件)上

综上,OS是铺设在计算机硬件上的多层软件的集合,不仅增强系了统的功能,还隐藏了对硬件操作的具体细节。

2 操作系统的基本特性

2.1 并发

进程和并发是现代操作系统中最重要的基本概念,也是操作系统运行的基础。

为了实现并发,故引入进程的概念

1. 什么是并行/并发:

并发是指多个事件在同一时间间隔内发生。
并行指多个事件在同一时刻发生(要求更苛刻)

2. 并发的背景:多道程序环境
多道程序环境下,并发性是指在一段时间内宏观上有多个程序在同时运行:

  • 对于单处理机系统,微观上实际是在分时交替运行;
  • 多处理机系统, 可将并发执行的程序分配到多个处理机上,实现并行执行。

多个处理机才能实现程序的并行

3. 并发的实现:引入进程
4. 并发的好处:
极大地提高系统资源的利用率,增加系统的吞吐量。

在未引入进程的系统中,属于同一个应用程序的计算程序和I/O程序之间只能是顺序执行。

为计算程序和I/O程序分别建立一个进程(Process)后,这两个进程就可以并发执行。

进程指在系统中能独立运行并作为资源分配的基本单位,是一个能独立运行的活动实体。多个进程之间可以并发执行和交换信息。

2.2 共享

OS下的资源共享或称为资源复用,指系统中的资源可供内存中多个并发执行的进程共同使用。 宏观上限定了同时(进程在内存期间),同地(内存)。

根据资源属性不同,进程对资源的复用(共享方式)主要有以下两种:

1. 互斥共享

在一段时间内只允许一个进程访问的资源,称为临界资源(或独占资源)。

  • 互斥共享的使用情景

系统中大多数物理设备,以及栈、变量和表格,都属于临界资源,临界资源只能被互斥共享。

2. 同时访问

系统中还有另一类资源,允许在一段时间内由多个进程“同时”对其进行访问。(典型的资源有磁盘设备

在单处理机环境下, “同时”是宏观意义上的,微观上进程对资源的访问实际上是交替进行的。

并发和共享是多用户(多任务)OS系统最基本的特征。它们是互为存在的条件:一方面资源共享是以进程的并发执行为条件的;另一方面若系统不能对资源共享实施有效管理,必然会影响到进程间并发执行的程度,甚至无法并发。

2.3 虚拟

虚拟: 通过某种技术,将一个物理实体变为若干个逻辑上的对应物的功能。

OS中有两种实现虚拟的技术:

  • 时分复用
  • 空分复用

2.4 进程的异步性

由于资源等因素的限制,进程是以不可预知的速度向前推进的,此即进程的异步性

但只要在OS中配置有完善的进程同步机制,且运行环境相同,则作业即便经过多次运行,也都会得到完全相同的结果。

异步的运行方式是允许的,且是操作系统的一个重要特征。

3 操作系统的主要功能

3.1 处理机管理功能

1. 进程控制
2. 进程同步
3. 进程通信
4. 调度:作业调度、进程调度

3.2 存储器管理功能

  1. 内存分配
  2. 内存保护
  3. 地址映射
  4. 内存扩充

3.3 设备管理功能

  1. 缓冲管理
  2. 设备分配
  3. 设备处理

3.4 文件管理功能

  1. 文件存储空间的管理
  2. 目录管理
  3. 文件的读/写管理和保护

3.5 操作系统与用户之间的接口

  1. 用户接口
  2. 程序接口

5 OS的结构

5.1 传统操作系统结构

  1. 无结构OS
  2. 模块化结构OS
  3. 分层式结构OS

5.2 客户/服务器模式

Client/Sever Model,可简称为C/S模式。

5.3 面向对象的程序设计技术

根据“抽象”和“隐蔽”原则来控制大型软件的复杂度

5.4 微内核OS结构

是在C/S架构上发展而来,非常适合分布式系统环境。

微内核操作系统往往采用的是C/S模式,它把操作系统分为微内核多个服务器

  • 微内核:

    1. 实现与硬件紧密相关的处理,
    2. 实现一些较基本的功能:
      • ①进程(线程)管理 (进程或者线程的调度)
      • 低级存储器管理 (用户程序逻辑空间到内存空间的物理地址的变换)
      • ③中断和陷入管理 (中断和陷入)
    3. 负责客户和服务器之间的通信~
       
  • 服务器:

    • ①进程(线程)服务器
    • ②虚拟存储器服务器
    • ③I/O设备管理服务器

机制与策略分离
①②③功能,在微内核和服务器端都负责,但微内核负责的是机制,服务端负责的是策略。

~客户与服务器之间借助微内核提供的消息传递机制来实现信息交互的。

用户态与内核态

由于微内核结构的存在,那么程序就运行在两种不同的地方,内核态和用户态,内核态与用户态是操作系统的两种运行级别,跟intel cpu没有必然的联系。

  • 内核态:

当一个任务(进程)执行系统调用而陷入内核代码中执行时,我们就称进程处于内核运行态(或简称为内核态)。其他的属于用户态。

用户程序运行在用户态, 操作系统运行在内核态.(操作系统内核运行在内核态,而服务器运行在用户态)。

用户态不能干扰内核态,所以CPU指令就有两种:

  • 特权指令
    只能由操作系统内核部分使用,不允许用户直接使用的指令。如,I/O指令、置终端屏蔽指令、清内存、建存储保护、设置时钟指令(这几种记好,属于内核态)
  • 非特权指令
    所有程序均可直接使用。

不同的状态对应不同的指令。所以:系统态(核心态、特态、管态):执行全部指令。用户态(常态、目态):执行非特权指令

用户态与内核态之间的转换
  1. 系统调用
    这是用户态进程主动要求切换到内核态的一种方式,用户态进程通过系统调用申请使用操作系统提供的服务程序完成工作,比如前例中fork()实际上就是执行了一个创建新进程的系统调用。而系统调用的机制其核心还是使用了操作系统为用户特别开放的一个中断来实现,例如Linux的int 80h中断

  2. 异常
    当CPU在执行运行在用户态下的程序时发生了某些事先不可知的异常,这时会触发由当前运行进程切换到处理此异常的内核相关程序中,也就转到了内核态,比如缺页异常。

  3. 外围设备的中断
    当外围设备完成用户请求的操作后,会向CPU发出相应的中断信号这时CPU会暂停执行下一条即将要执行的指令转而去执行与中断信号对应的处理程序,如果先前执行的指令是用户态下的程序,那么这个转换的过程自然也就发生了由用户态到内核态的切换。比如硬盘读写操作完成,系统会切换到硬盘读写的中断处理程序中执行后续操作等。

  • 内核具体功能
    (1) I/O指令、置终端屏蔽指令、清内存、建存储保护、设置时钟指令。
    (2) 中断、异常、陷入,比如缺页中断等
    (3)进程(线程)管理
    (4)系统调用,比如调用了设备驱动程序
    (5)用户内存地址的转换(逻辑—> 物理映射)
真题

1、用户在程序中试图读某文件的第100个逻辑块,使用操作系统提供的()接口
A:系统调用
B:图形用户接口
C:原语
D:键盘
命令解析:程序需要读取第100个逻辑块,这里发生了逻辑地址到物理地址的转换,必然要进入到内核态执行转换,所以必然要进入到内核态,在四个选型中,只有A系统调用才能进入到内核态。所以A入选。图形用户接口是用户接口,他是获得操作系统提供的服务一种方式,但是要想获得操作系统的服务,在底层仍然是使用的系统调用。

2、在中断发生后,进入中断处理的程序属于:()
A:用户程序
B:可能是应用程序,也可能是操作系统程序
C:操作系统程序
D:既不是是应用程序,也不是操作系统程序
解析:中断的处理是由操作系统内核来处理的,这是操作系统内核最基本的功能之一,所以只能是操作系统程序。

从这些题目中,可以看出,理解内核态和用户态的基本的概念,区分好他们不同的情景,并且掌握内核态的典型场景,就可以做好这一类的题目。

参考

操作系统的运行机制

计算机系统中,通常CPU执行两种不同性质的程序:

  • 一种是操作系统内核程序
  • 另一种是用户自编程序或系统外层的应用程序。

操作系统在具体实现上划分了用户态(目态)和核心态(管态),以严格区分两类程序。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TqZRCHb4-1600074074205)(en-resource://database/1898:1)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kifCua5E-1600074074206)(en-resource://database/1900:1)]

你可能感兴趣的:(OS,操作系统)