操作系统引论3(主要功能、运行环境、结构设计、系统调用)

操作系统的主要功能

  • 保证多道程序能有条不紊地、高效地运行
  • 最大程度地提高系统中各种资源的利用率,方便用户的使用

处理机管理功能

  • 进程控制

    • 主要功能
      • 作业创建进程、撤销(终止)已结束的进程
      • 控制进程在运行过程中的状态转换
  • 进程同步

    • 主要任务:为多个进程(含线程)的运行进行协调
    • 常用的协调方式
      • 进程互斥方式:指诸进程在对临界资源进行访问时,应采用互斥方式
      • 进程同步方式:指在相互合作去完成共同任务的诸进程间,由同步机构对它们的执行次序加以协调。而实现进程同步时,最常用的机制是信号量机制
  • 进程通信

    • 实现相互合作进程之间的信息交换
      在这里插入图片描述

    • 当相互合作的进程处于同一计算机系统时,通常在它们之间采用直接通信方式,即由源进程利用发送命令直接将消息挂到目标进程的消息队列上,以后由目标进程利用接收命令从其消息队列中取出消息

在这里插入图片描述

  • 调度
    • 作业调度:基本任务是从后备队列中按照一定的算法选择出若干个作业,为它们分配运行所需的资源,在将这些作业调入内存后,分别为它们建立进程,使它们都成为可能获得处理机的就绪进程,并将它们插入就绪队列中

    • 进程调度:任务是从进程的就绪队列中按照一定的算法选出一个进程,将处理机分配给它,并为它设置运行现场,使其投入执行
      在这里插入图片描述

存储器管理功能

  • 主要任务:是为多道程序的运行提供良好的环境,提高存储器的利用率,方便用户使用,并能从逻辑上扩充内存

  • 内存分配

    • 主要任务

      • 每道程序分配内存空间,使它们“各得其所”
      • 提高存储器的利用率,尽量减少不可用的内存空间(碎片)
      • 允许正在运行的程序申请附加的内存空间,以适应程序和数据动态增长的需要
    • OS在实现内存分配时,可采用静态和动态两种方式

  • 内存保护

    • 主要任务

      • 确保每道用户程序都仅在自己的内存空间内运行,彼此互不干扰
      • 绝不允许用户程序访问操作系统的程序和数据,也不允许用户程序转移到非共享的其它用户程序中去执行
    • 为了确保每道程序都只在自己的内存区中运行,必须设置内存保护机制。一种比较简单的内存保护机制是设置两个界限寄存器,分别用于存放正在执行程序的上界和下界。在程序运行时,系统须对每条指令所要访问的地址进行检查,如果发生越界,便发出越界中断请求,以停止该程序的执行
      在这里插入图片描述

  • 地址映射

    • 地址隐射是指在多道程序环境下,由于每道程序经编译和链接后所形成的可装入程序其地址都是从0开始的,但不可能将它们从“0”地址(物理)开始装入内存,致使(各程序段的)地址空间内的逻辑地址与其内存空间中的物理地址并不相一致

在这里插入图片描述

  • 能够将地址空间中的逻辑地址转换为内存空间中与之对应的物理地址。该功能应在硬件的支持下完成

  • 内存扩充

    • 并非是从物理上去扩大内存的容量,而是借助于虚拟存储技术,从逻辑上扩充内存的容量
    • 既满足了用户的需要,又改善了系统的性能
    • 为了能在逻辑上扩充内存,系统必须设置内存扩充机制,用于实现请求调入功能和置换功能

设备管理功能

  • 主要任务

    • 一是完成用户进程提出的I/O请求,为用户进程分配所需的I/O设备,并完成指定的I/O操作
    • 二是提高CPU和I/O设备的利用率,提高I/O速度,方便用户使用I/O设备
  • 缓冲管理

    • 有效地缓和CPU和I/O设备速度不匹配的矛盾,提高CPU的利用率,提高系统吞吐量
    • 最常见的缓冲区机制
      • 单缓冲机制
      • 双缓冲机制:能实现双向同时传送数据
      • 公用缓冲池机制:能供多个设备同时使用
  • 设备分配

    • 基本任务

      • 根据用户进程的I/O请求、系统现有资源情况以及按照某种设备分配策略,为之分配其所需的设备
      • 如果在I/O设备和CPU之间还存在着设备控制器和I/O通道,则还需为分配出去的设备分配相应的控制器和通道
    • 为实现设备分配,系统中应设置设备控制表、控制器控制表等数据结构,用于记录设备及控制器等的标识符和状态

  • 设备处理(设备驱动程序)

    • 基本任务
      • 用于实现CPU和设备控制器之间的通信,即由CPU向设备控制器发出I/O命令,要求它完成指定的I/O操作
      • 反之,由CPU接收从控制器发来的中断请求,并给予迅速的响应和相应的处理

文件管理功能

  • 主要任务:对用户文件和系统文件进行管理以方便用户使用,并保证文件的安全性

  • 文件存储空间的管理

    • 文件系统对诸多文件及文件的管理空间实施统一的管理
    • 主要任务:为每个文件分配必要的外存空间,提高外存的利用率,进而提高文件系统的存、取速度
  • 目录管理

    • 主要任务:为每个文件建立一个目录项,目录项包括文件名、文件属性、文件在磁盘上的物理位置等,并对众多的目录项加以有效的组织,以实现方便的按名存取
      • 按名存取
      • 文件共享
      • 提供快速的目录查询手段
  • 文件的读/写管理和保护

    • 文件的读写管理:根据用户的请求,从外存中读取数据,或将数据写入外存
    • 文件保护:文件系统中必须提供有效的存取控制功能,以实现下述目标:
      • 防止未经核准的用户存取文件
      • 防止冒名顶替存取文件
      • 防止以不正确的方式使用文件

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

  • 用户接口

    • 为了便于用户直接或间接地控制自己的作业,操作系统向用户提供了命令接口

      • 联机用户接口:为联机用户提供的,它由一组键盘操作命令及命令解释程序组成

      • 脱机用户接口:为批处理作业用户提供的

      • 图形用户接口

  • 程序接口

    • 为用户程序在执行中访问系统资源而设置的。是用户程序取得操作系统服务的唯一途径
    • 是由一组系统调用组成的,每一个系统调用都是一个能完成特定功能的子程序

现代操作系统

  • 保密性完整性系统可用性
  • 系统安全:认证技术、密码技术、访问控制技术、反病毒技术
  • 网络功能和服务:网络通信、资源管理、应用互操作
  • 支持多媒体:接纳控制技术、实时调度、多媒体文件的存储

OS的运行环境

硬件支持

在这里插入图片描述

  • 定位OS内核并将其加载到内存中

操作系统内核

  • 常驻内存,通常与硬件紧密相关

  • 支撑功能:该类功能主要给实现提供给OS其他众多模块所需要的一些基本功能,以支撑这些模块工作

    • 中断处理:是内核最基本的功能
    • 时钟管理
    • 原语操作
      • 由若干条指令组成,用于完成一定功能
      • 原子操作:要么不做,要么全做,不可分割
  • 资源管理功能:进程管理、存储器管理、设备管理

处理机的双重工作模式

  • 特权指令:如果误用,有可能引起系统崩溃的指令

  • 内核态(管态、系统态):执行包括特权指令在内的一切指令

  • 用户态(目态):不能执行特权指令

  • 由硬件提供模式位

    • 提供了区分系统正在运行用户代码或内核代码
    • 系统调用切换运行模式到内核态,并将调用结果返回给用户
  • 特权指令:在内核态下运行的指令

    • 不仅能访问用户空间。还能访问系统空间
    • 如启动外部设备、设置系统时钟、管中断、切换执行状态、I/O指令
  • 非特权指令:在用户态下运行的指令

    • 应用程序所使用的都是非特权指令
    • 防止应用程序的运行异常对系统造成破坏
    • 仅能访问用户空间
  • 用户态到内核态的切换
    在这里插入图片描述

中断与异常

  • 操作系统是中断驱动的,OS总在等待某个事件的发生。事件总是由中断或异常引起的
    • 中断:由硬件引起
    • 异常/陷阱:由软件引起
      • 出错(如除数为0或无效存储访问)
      • 用户程序的特定请求(如执行OS的某个服务)

OS的结构设计

简单结构(整体性结构)

  • OS是无结构的,是为数众多的一组过程的集合,内部复杂、混乱
  • 例子:MS-DOS,早期的UNIX

模块化结构

  • 将OS按功能划分成若干个模块,并规定好各模式间的接口,称为“模块-接口法”
  • 采用“模块-接口法”设计OS结构时,关键问题是模块的划分和规定好模块之间的接口
  • 优点
    • 提高OS设计的正确性、可理解性和易维护性
    • 增强OS的可适应性
    • 加速OS的开发过程
  • 目前,设计OS的常用方法是采用可加载的内核模块
    • 内核有一组核心组件,提供核心服务
    • 其他服务可在内核运行时动态实现(动态链接)
    • 每个组件在需要时被加载到内核
    • 例子:Linux、Mac OS X、Solaris以及windows

分层式结构

  • 操作系统划分为若干层,在低层上构建高层
    • 高层仅依赖于紧邻它的底层
    • 底层(0层)为硬件;最高层(N层)为用户层
  • 优点
    • 易保证系统的准确性
    • 可保证系统的易维护性和可扩充性
  • 缺点
    • 系统效率低
  • 例子:THE、Multics

微内核OS结构

  • 基本概念

    • 足够小的内核
    • 应用“机制与策略分离”原理
    • 基于客户/服务器模式
    • 采用面向对象技术
  • 基本功能:进程管理、低级存储器管理、中断和陷入处理

  • 实例:Mach OS,windows 2000/XP

  • 结构示意图
    在这里插入图片描述

  • 优点

    • 提高了系统的可扩展性
    • 增强了系统的可靠性
    • 可移植性强
    • 提供了对分布式系统的支持
    • 融入了面向对象技术
  • 存在问题

    • 运行效率有所降低
    • 主要原因:在完成一次客户对操作系统提出的服务请求时,需要利用消息实现多次交互和进行用户/内核模型与上下文的多次互换

外核结构

  • 基本思想:内核不提供传统OS中的进程、虚拟存储器等抽象,而是专注于物理资源的隔离(保护)与复用
    • 内核非常小,负责保护系统资源
    • 实用程序管理硬件资源

在这里插入图片描述

  • 实例:Aegis系统

系统调用

系统调用的基概念

  • 系统调用目的:使应用程序可以通过它间接调用OS内核中的相关过程,取得相应的服务
  • 系统调用概念
    • 应用程序请求OS内核完成某功能时的一种过程调用
    • 用户与内核的接口
  • 与一般过程调用的区别
    • 运行在不同的系统状态
    • 状态的转换
    • 返回问题
    • 嵌套调用

系统调用类型

  • 进程控制类:创建和终止进程、获得和设置进程属性、等待某事件出现的系统调用

  • 进程通信类:用于进程之间通信的系统调用

  • 文件操纵类:打开和关闭文件、创建和删除文件、读写文件的系统调用

  • 设备管理类:申请设备、释放设备、设备I/O重定向、获得和设置设备属性等系统调用

  • 信息维护类:获得包括有关系统和文件的时间信息、OS版本、当前用户、空闲内存、磁盘等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CL3

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值