菜单
菜单
文章目录
  1. 一、概念整理
    1. 第一章
      1. 1.操作系统
      2. 2.三种系统基本类型:
      3. 3.多处理系统的三个主要优点
      4. 4.操作系统的设计目标
      5. 5.四种系统结构的思想
      6. 6.双重模式操作
      7. 7.保护
      8. 8传递参数三种方式(系统调用实现方法)
    2. 第二章
      1. 9.操作系统服务
      2. 10.命令解释程序
      3. 11.API应用程序接口
      4. 12.系统调用类型
      5. 13I/O系统
      6. 14操作系统结构的思想和特点
      7. 15虚拟机
  2. 二、重要概念

操作系统复习(一)

一、概念整理

第一章

1.操作系统

操作系统是控制和管理计算机硬件和软件资源、合理的对各类工作进行调度,以及方便用户的程序集合。操作系统是用户和计算机的接口,同时也是计算机硬件和其他软件的接口。

操作系统是管理计算机硬件与软件的计算机程序,同时也是计算机系统的内核和基石。操作系统需要处理如管理和配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。

2.三种系统基本类型:

批处理系统:用户将作业交给系统操作员,系统操作员将许多用户的作业集中成一作业输入计算机,操作系统会形成一个自行转接连续作业流,系统会自动的依次执行每一个作业,并最终将结果发给用户。【优点③:作业流程自动化、节省作业装入时间效率高、吞吐量高(毕竟一下子执行一批)缺点②:无交互手段,调试程序困难,CPU经常闲置】

实时系统:实时系统是指当外界事件或者数据产生时,系统会接受这些信息并以足够快的速度予以处理,其处理结果又会在规定时间内来控制生产过程对处理系统做出快速反应,并控制所有实时任务协调一致运行的操作系统

分时系统:操作系统将CPU的时间划分成若干个片段,也就是时间片。操作系统以时间片为单位,在用户间快速切换,轮流为每个终端用户服务,每次服务耗费一个时间片。系统的快速切换使得用户觉得整个系统为自己单独所用。【优点:多道性(给多个用户),同时性,独立性,及时性,交互性】

3.多处理系统的三个主要优点

增加吞吐量:希望能在更短的时间内处理更多的事情。
规模经济:多处理器系统比单个处理器系统能节省资金 。
增加可靠性:不会因为单个处理器失灵而使整个系统停止。

4.操作系统的设计目标

从用户方面,使用户方便使用

从系统方面,保证计算机系统正常运行

5.四种系统结构的思想

多道程序设计系统:同时在内存中驻留多个程序,当一个进程等待时,系统会自动切换到另一个进程执行。【优点:CPU总有一个作业可执行,充分利用了CPU;缺点:会引起作业调度,内存磁盘整理和CPU调度问题】

批处理系统:脱机输入,批量执行,自动运行

分时系统:解决了批处理系统的交互问题,又是多道程序设计系统的扩展,使得CPU可以在多个任务之间切换,用户在线交互。

实时系统:用于对处理器操作和数据流动有严格时间控制的系统要求,分为硬实时系统和软实时系统。保证关键任务按时完成。保证关键任务的优先级高于其他任务,先完成优先级高的任务。

6.双重模式操作

用户模式和系统模式(转换图)

提供了保护操作系统和用户程序不受错误用户程序的影响的手段。

实现方法:将能引起损害的机器指令作为特权指令,如果用户模式试图执行特权指令,那么硬件听不执行该指令,而是作为该指令非法,并将其以陷阱的形式通知操作系统。

系统调用:用户与操作系统交互,从而请求执行一些只有操作系统才能做的指令时,都是有用户调用来执行特权指令

7.保护

I/O保护:为防止用户非法IO,可定义所有IO命令为特权指令

内存保护:通过基址寄存器和界限寄存器来确定程序所能访问的合法地址空间并保护其他内存空间。

CPU空间:使用定时器来防止用户程序执行时间过长。作用:防止用户程序无限占用CPU

8传递参数三种方式(系统调用实现方法)

(1)用寄存器来传递参数

(2)寄存器传递参数的块首地址

(2)参数通过程序存放或亚茹堆栈中,并通过操作系统弹出堆栈

第二章

9.操作系统服务

一组操作系统所包含的函数:

  • 用户界面(命令行 or GUI)
  • 程序执行
  • I/O操作
  • 文件系统操作
  • 通信
  • 错误检测
  • 资源分配
  • 统计
  • 保护和安全

10.命令解释程序

如shell,在内核中,获取并执行用户指定的下一条指令

  • 一种是解释程序本身包含代码以执行,如win下的git bash

  • unix执行rm file.txt搜索rm这个文件,然后以file.txt为参数执行

11.API应用程序接口

​ Java API | POSIX API(unix,linux) | win32 API

传递每个函数的参数以及其返回的程序员想要得到的值

12.系统调用类型

  • 进程控制
    • 结束,放弃
    • 装入,执行
    • 创建进程,终止进程
    • 取得进程属性,设置进程属性
    • 等待时间
    • 等待事件,唤醒事件
    • 分配和释放内存
  • 文件管理
    • 创建文件,删除文件
    • 打开,关闭
    • 读、写、重定位
    • 取得文件属性,获得文件属性
  • 设备管理
    • 请求设备,释放设备
    • 读、写、重定位
    • 取得设备属性、设置设备属性
    • 逻辑连接或断开设备
  • 信息维护
    • 读取时间或日期,设置时间或日期
    • 读取系统数据,设置系统数据
    • 读取进程,文件或设备属性
    • 设置进程,文件或设备属性
  • 通信
    • 创建,删除通信连接
    • 发送,接收消息
    • 传递状态信息
    • 连接或断开远程设备

13I/O系统

一个包括缓冲、高速缓存和假脱机的内存管理部分。包括通用设备驱动器接口和特定硬件设备的驱动程序

14操作系统结构的思想和特点

  • 简单结构:较小,简单且功能有限
  • 分层方法:将操作系统模块化,分成若干层,每层建立在较低层上。
    • 最低层为硬件
    • 最高层使用用户接口
    • 操作系统分为8个模块
      • 进程管理
      • 内存管理
      • 文件管理
      • 输入输出管理
      • 二级存储管理
      • 联网
      • 保护系统
      • 命令解释系统
    • 特点:系统分层采用模块化,简化了系统的设计和实现,每层都是利用较低层提供的功能来实现的;但是对层的仔细认证的定义比较困难,与其他方法相比较效率较差
  • 微内核:将所有非基本的部分从内核中移走,将它们实现为系统程序或用户程序,剩余部分即为微内核
    • 优点:便于扩充操作系统,具有更好的安全性和可靠性,操作系统很容易从一种硬件品台设计一直到另一种硬件平台的设计上
    • 缺点:要忍受系统功能总开销的增加而导致系统性能的下降

15虚拟机

单个计算机的硬件抽象为不同的几个执行部件,有的系统程序很容易被应用程序调用,这种分成方法自然而然的逻辑延伸为虚拟机的概念。

功能:提供与基本硬件相同的接口

二、重要概念

引导程序

DMA

为了解决大块数据移动带来的超载问题而设计。在为设备设置好缓冲、指针和计数之后设备控制器能在本地缓冲和内存之间传送一整块数据,而无需CPU干预。每块只产生一个中断,来告知设备驱动程序操作已经完成,而不是像低速设备那样每个字节产生一个中断,大纲设备控制器在执行这些操作时,CPU可以去完成其他工作。

多道程序设计

通过组织作业使CPU总有一个作业可执行,从而提高了CPU的利用率

双重模式操作:

用户模式:当计算机系统表示用户应用程序正在执行,系统处于用户模式
监督程序模式(系统模式):当用户应用程序需要操作系统的服务,它必须从用户模式转换过来执行请求。
双重模式操作提供了保护操作系统和用户程序不受错误用户程序影响的手段。将能引起损害的机器指令作为特权指令。
系统调用

为用户程序请求操作系统代表用户程序完成预留给操作系统的任务提供了方法。
系统调用通常采用陷阱到中断向量中的一个指定位置的方式。
当系统调用被执行时,硬件会将它作为软件中断。控制权会通过中断向量转交到操作系统的中断处理程序,模式位设置成内核模式。
系统调用提供了操作系统提供的有效服务界面
向操作系统传递参数有三种方法:寄存器,块和表,堆栈。
系统调用可大致分为五类:进程控制,文件管理,设备管理,信息维护和通信

操作系统结构

简单结构由内核和系统程序组成
物理硬件之上和系统调用接口之下的所有部分被称为内核。内核通过系统调用以提供文件系统cpu调度、内存管理和其他操作系统功能。

分层法:最底层为硬件,最高层为用户接口。操作系统层可作为抽象数据来实现,该对象包括数据和操作这些数据的操作。分层法的优点在于构造和调试的简单化。
每层都是利用较低层所提供的功能来实现的。
分层法的主要困难设计对层的详细定义,最后一个问题是与其他方法相比其效率较差。
微内核:通过将所有非基本部分从内核中移走,并将它们实现为系统程序或者用户程序。
微内核的主要功能是使客户程序和运行在用户空间的各种服务之间进行通信。
微内核的好处之一在于方便扩充操作系统,其次有很好的安全性和很强的可靠性。
微内核必须忍受由于系统功能总开销的增加而导致系统性能的下降。
模块
内核有一组核心部件, 以及在启动或运行时对附加服务的动态链接. 这样的设计允许内核提供核心服务, 也能动态地实现特定的功能.
系统启动

装入内核以启动计算机的过程称为引导系统. 绝对多数计算机系统都有一小块代码, 它称为引导程序. 这段代码能定位内核, 将它装入内存, 开始执行.
一个简单的引导程序从磁盘上调入一个较复杂的引导程序, 而后者再装入内核.
为了运行计算机系统, 必须初始化CPU和在固件系统中启动执行引导程序. 如果操作系统也在固件系统中, 引导程序可以直接启动操作系统, 否则, 它必须完成这样一道程序: 逐步地从固件或磁盘装载更聪明的程序, 直到操作系统本身被装入内存并执行.

进程管理

进程

可看做是正在执行的程序. 进程需要一定的资源(如CPU, 时间, 内存, 文件和I/O设备)来完成其任务. 这些资源在创建进程或执行进程时被分配.
进程是大多数系统中的工作单元. 这样的系统由一组进程组成: 操作系统进程执行系统代码, 用户进程执行用户代码. 所有这些进程可以并发执行.
操作系统负责进程和线程管理, 包括用户进程与系统进程的创建于删除, 进程调度, 提供进程同步机制, 进程通信机制与进程死锁处理机制.

线程

线程是CPU使用的基本单位. 它由线程ID, 程序计数器, 寄存器集合和栈组成.
它与属于同一进程的其他线程共享代码段, 数据段和其他操作系统资源, 如打开文件和信号.

线程的优点
1 响应度高
2 资源共享
3 经济: 进程创建所需要的内存和资源的分配比较昂贵. 由于线程能共享它们所属进程的资源, 所以创建和切换线程会更为经济.
4 多处理器体系结构的利用
保护域
工作集
设备驱动程序
虚拟地址
系统调用
对换
所谓“对换“,是指把内存中暂时不能运行的进程或者暂时不用的程序和数据,调出到外存上,以腾出足够的内存空间,再把已具备运行条件的进程或进程所需要的程序和数据调入内存。对换是提高内存利用率的有效措施。

死锁
并发