操作系统(一)—— 概论(2):操作系统结构

操作系统系列内容的学习目录 → \rightarrow 操作系统学习系列内容汇总

2. 操作系统结构

2.1 操作系统的服务

  操作系统提供环境以便执行程序。它为程序及程序用户提供某些服务。操作系统服务的视图如下图所示。

在这里插入图片描述

  • 用户界面: 有多种形式,命令行界面、批处理界面、图形用户界面(Graphical User Interface,GUI)。
  • 程序执行: 系统能加载程序到内存,并加以执行。
  • I/O操作: 可以涉及文件或外设。
  • 文件系统操作
  • 通信: 一个进程与另一个进程交换信息。包括内存共享、消息交换等。
  • 错误检测: 需要不断的检测错误和更正错误。
  • 资源分配: 当多用户或多作用同时运行时,每个都应分配资源。
  • 记账: 记录用户使用资源的类型和数量。
  • 保护与安全

2.2 用户与操作系统的界面

  主要介绍命令解释程序(command interperter)和图形用户界面(GUI)。

2.2.1 命令解释程序

  • 有的操作系统内核包括命令解释程序。解释程序称为Shell(外壳),将用户输入的命令转换为机器指令。
  • 如windows的dos命令行:

    在这里插入图片描述

2.2.2 图形用户界面

  • 采用用户友好的图形用户界面(GUI)。
  • 优点: 用户操作简单、方便。
    缺点: 消耗系统资源,系统复杂度更高,bug更多。

2.3 系统调用

  • 系统调用(System Call)提供操作系统服务接口。这些调用通常以C或C++编写,甚至是汇编语言编写。
  • 通常应用程序开发人员根据应用程序接口(Application Programming Interface,API)来设计程序。
  • 一个简单的复制文件的界面操作,可能需要n次系统API的调用

    在这里插入图片描述
  • 大多数程序设计语言(如C或Java等),运行时支持系统提供了系统调用接口(system-call interface),以连接到操作系统的系统调用。下图所示的是用户应用程序调用系统调用open()的处理。

    在这里插入图片描述
  • 标准C程序库的例子:

    在这里插入图片描述

2.4 系统调用的类型

  系统调用的类型大致分为六大类:进程控制、文件管理、设备管理、信息维护、通信和保护。

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

2.4.1 进程控制

  • 执行程序能正常或异常停止执行。如果一个系统调用异常停止当前执行的程序,那么有可能转存储内存到磁盘,并生成错误信息。
  • 通常,多个进程会共享数据。为了确保共享数据的完整性,操作系统通常提供系统调用,以允许一个进程锁定(lock)共享数据。这样在解锁之前,其他进程不能访问该数据。

2.5 操作系统的结构

  • 操作系统庞大且复杂,为了正常工作并易于修改,应当认真设计。
  • 常用的方法是将操作系统分成子系统或模块

2.5.1 简单结构

  MS-DOS系统并没有很好的区分功能的接口和层次。MS-DOS层次结构如下图所示。

在这里插入图片描述
  最初的Unix,采用有限结构。传统的Unix系统结构如下图所示。

在这里插入图片描述

2.5.2 分层方法

  分层法的主要优点在于简化了构造和调试,所选的层次要求每层只能调用更底层的功能和服务。下图所示的是分层的操作系统。

在这里插入图片描述

2.5.3 微内核

  随着Unix不断壮大,其内核也变得更大且更难管理。
  采用微内核技术对内核进行模块化。即从内核中删除所有不必要的部件,将它们当做系统级与用户级的程序来实现。这样做的结果是内核较小
  微内核的主要功能是为客户端程序和运行在用户空间中的各种服务提供通信。通信是通过消息传递来提供的。
  优点: 内核更小、便于扩展操作系统、更好的安全性和可靠性、便于移植。
  缺点: 增加系统功能的开销,微内核的性能会受损。

2.5.4 模块

  目前的操作系统采用可加载的内核模块。
  Solaris可加载模块如下图所示。

在这里插入图片描述

2.5.5 混合系统

  如Android分层模式:(Google Android结构如下图所示)

在这里插入图片描述

2.6 系统引导

  操作系统如何启动?
  加载内核以启动计算机的过程,称为系统引导(booting)。大多数计算机系统都有一小块代码,称之为引导程序(bootstrap program)。这段代码能够定位内核,并加载到内存以开始执行。
  引导程序存储在只读存储器(Read Only Memory,ROM)中。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值