2.操作系统结构

操作系统结构

2.1 操作系统服务

2.1.1 对用户
  • 用户界面、程序执行、I/O操作、文件系统操作、通信、错误检测
2.1.2 对系统
  • 资源分配、统计、保护和安全

2.2 操作系统的用户界面

2.2.1 命令解释程序
  • 命令解释程序本身包含代码以执行这些命令;
  • 由系统程序实现绝大多数命令;
2.2.2 图形用户界面

2.3 系统调用

2.3.1 系统调用
  • 操作系统内核提供一系列预定功能,通过一组称为系统调用的接口呈现给编程人员,系统调用把应用程序的请求传给内核,系统调用相应的内核函数完成所需的处理,将处理结果返回给应用程序。C或C++编写。系统调用是内核的一部分
2.3.2 如何找到相应的内核函数
  • 实际上每一个系统调用都和一个数相关联,通过索引表找到相应的内核函数,类似于中断向量表,系统调用本质上也是一种软中断(trap)。
2.3.3 三种常用的API
  1. 适用于windows系统的win32API;
  2. 适用于POSIX系统的POSIXAPI;
  3. 适用于Java虚拟机程序的JavaAPI;
2.3.4 使用API不适用系统调用的原因
  • API编程程序可移植性好;
  • 系统调用难度高;
  • 如果说系统调用是内核和应用程序信息交流的通道,那么API就是程序和开发人员之间交流的通道,它为开发人员掩盖系统调用的细节,提供访问并操作硬件的权利。
2.3.5 向操作系统传递参数的三种方法
  1. 通过寄存器来传递参数;
  2. 将参数存在内存的块和表中,将块的地址通过寄存器来传递;
  3. 参数通过程序压入堆栈,通过操作系统弹出。

2.4 系统调用类型

系统调用大致分为五大类:进程管理、文件管理、设备管理、信息维护和通信

2.5 系统程序

  1. 系统程序提供了一个方便的环境,以开发程序和执行程序;
  2. 一小部分系统程序只是系统调用的简单接口,其他的可能是相当复杂的。分为如下几类:文件管理、状态信息、文件修改、程序语言支持、程序执行和装入、通信。

2.6 操作系统设计和实现

2.6.1 机制和策略
  • 机制决定如何做;
  • 策略决定做什么;

2.7 操作系统的结构

四种结构:
  • 简单结构: 早期的操作系统并没有很好的架构,有些甚至没有区分核心态和用户态。导致系统的不稳定性。
  • 分层方法: 将操作系统分为多个层次,最底层的是硬件(层0),最高层为用户接口(层N),每一层都只是依靠于更底层的功能来实现的,这样形成一个层次化的结构。层次结构的好处是简化了构造和调试,弊端是层次之间藕合性高,层次之间很难界定。另一个问题就是层次结构的效率较低,一个系统调用可能要陷入多个层再返回,增加了很多花销。
  • 微内核:
  • 模块: 采用面向对象的特点,将各个功能模块化,每一个模块之间使用接口进行通讯,必要的时候可以将一部分的内容加载到内核中进行操作。它类似于层次结构,但是模块之间没有上下层的依赖关系,模块之间可以相互调用,更加灵活;它类似于微核,但是必要时候会将内容加载到内核中,比微核更有效率。
    许多操作系统采用混合结构。
2.7.1 微内核
  • 实现:将所有非基本部分都从内核中移走,并将它们实现为系统程序或者用户程序。微内核通常包括最小的进程和内存管理以及通信功能。
  • 主要功能:使客户程序和运行在用户空间的各种服务之间进行通信,通信以消息传递形式进行。
  • 好处:便于扩充操作系统、容易移植、提供更好的安全性和可靠性。
  • 缺点:由于系统功能总开销增加导致系统性能下降。

2.8 虚拟机

2.8.1 核心思想

虚拟机的核心思想就是将一套硬件设备抽象成多套,采用CPU调度和虚拟内存的技术,制造每一个进程都有自己单独处理器和内存的假象。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值