操作系统

操作系统

 

1 操作系统的逻辑结构

1.1 逻辑结构

OS的设计和实现思路

1.2 逻辑结构的种类

1.2.1 整体式结构

以模块为基本单位来构建——编程语言的基本编程思想

从图中可以看出,模块之间存在互相调用,即双向的调用;但是对于硬件来说,只存在单向的调用。

 

1、特点

(1)模块设计、编码和调试相互独立——可以并行开发,不同人设计不同的模块

(2)模块调用自由

(3)模块通信多以全局变量形式完成——对于全局变量的访问是否要进行互斥和同步。因为它此时是一个共享资源。

2、缺点

信息传递随意,维护和更新困难——模块之间的调用关系很难捋清楚

 

1.2.2 层次式结构

 

相邻层之间只有单向的依赖和单向的调用

每一层的实现只依赖于它的下一层;每一层为它的上一层提供服务

1、分层原则

硬件特性——最底层

外部特性——最外层

中间层——调用次序或消息传递顺序

共性的服务——较低层

活跃的功能(被频繁调用的功能)——较低层

2、优点

(1)结构清晰,避免循环调用——单向的调用

(2)整体问题局部化,系统正确性容易保证——分层开发

(3)有利于操作系统的维护、扩充、移植——兼容系统时,只需要修改硬件层

3、分层的优点

(1)各层次间是独立的。上层不知道下层是如何实现的,只需要下层提供的服务接口。上层的工作不会影响下层的工作。只要保证接口不变,可以随意调整整层的工作。

(2)灵活性好。某一层改变,只要层间接口关系保持不变,不影响它的上层,也不响应它的下层。

(3)各层可以得到最好的实现。

(4)易于实现和维护。进行调试和维护时,可以对每一层进行单独的调试。

(5)能促进标准化工作。

 

1.2.3 微内核结构(客户/服务器结构)

操作系统=微内核+核外服务器

1、微内核

足够小,提供OS最基本的核心功能和服务

(1)实现与硬件紧密相关的处理

(2)实现一些较基本的功能

(3)负责客户和服务器间的通信

2、核外服务器

完成OS的绝大部分功能,等待应用程序提出请求。

由若干服务器或进程共同构成

例如:进程/线程服务器,虚存服务器,设备管理服务器等,以进程的形式运行在用户态。

优点——非常方便地扩充新的功能,只需要在核外服务器上新加一个新的进程

 

1.3 操作系统

1.3.1 Linux——单体内核操作系统

www.kernel.org

1、单体内核操作系统

将OS的全部功能都做进内核中,包括调度、文件系统、网络、设备驱动器、存储管理。

单体内核是指在一大块代码中实际包含了所有操作系统功能,并作为一个单一进程运行,具有唯一地址空间。

2、缺点

移植性差(对硬件耦合度高)

 

1.3.2 Minix OS——微内核结构(4000行代码)

 

www.minix3.org(开源代码)

 

1、缺点

缺少多线程

 

2 操作系统的功能

支持操作系统最基本的硬件结构

(1)CPU

(2)内存

(3)中断

(4)时钟

 

2.1 CPU的态

2.1.1 CPU态

CPU的工作状态——对资源和指令使用权限的一种描述

1、态的分类

(1)核态(Kernel Mode)

能访问所有资源和执行所有指令

管理程序/OS内核

(2)用户态(User Mode)

仅能访问部分资源,其他资源受限

用户程序

(3)管态(Supervisor Mode)——监督人,主管人

介于核态和用户态之间

2、态的转换

(1)用户态向核态转换

用户请求OS提供服务——CPU执行OS指令

发生中断

用户进程产生错误(内部中断)

用户态企图执行特权指令

(2)核心向用户态转换的情形

一般执行中断返回

2.1.2 硬件和OS对CPU的观察

硬件按“态“来区分CPU状态

OS按“进程”区分CPU态

1、Intel CPU的态

Ring0~Ring3——Ring0最核心,Ring3最外层

程序段有一个请求特权级RPL和描述符特权级DPL——程序段之间的访问会比较之间的RPL和DPL。

 

 

2.2 存储器

存储程序和数据的部件

2.2.1 读写方式

RAM

ROM

2.2.2 与CPU的联系

主存:直接和CPU交换信息

辅存:不能直接和CPU交换信息

2.2.3 存储体系

 

不同类型存储设备混搭而成

寄存器——最快,最贵

高速缓存

主存

辅存——最慢

 

1、CPU读取指令或数据时的访问顺序

(1)访问缓存(命中,HIT)

(2)访问内存(没命中,MISS)——缓存没有为未命中

(3)访问辅存(缺页,PAGE_FAULT)——内存没有为缺页

访问缓存;未命中,访问主存;缺页,访问辅存

2.3 中断机制

中断——指CPU对突发的外部事件的反应过程或机制

    CPU收到外部信号(中断信号)后,停止当前工作,转去处理外部事件,处理完毕后回到原来的中断处(断点)继续原来的作用。

2.3.1 引入中断的目的

1、实现并发活动

CPU和外设并行工作;让两个程序并发运行,通过时钟的切换,使得两个程序并发使用CPU——时钟产生一个中断信号,通知CPU,让CPU把使用权切换到另外一个程序。

2、实现实时处理

3、故障自动处理

2.3.2 中断源和中断类型

引发系统中断的事件成为中断源

1、中断类型

(1)强迫性中断

程序没有预期,比如I/O。

(2)自愿中断

程序有预期,比如执行访管指令(访问内核)。

 

(1)外中断(中断)

由CPU外部事件引起

不可屏蔽中断,可屏蔽中断

(2)内中断(俘获)

由CPU内部事件引起——访管中断,程序中断。溢出等

2、断点

程序中断的地方,将要执行下一指令的地址

CS:IP——寄存器

3、现场——上下文

程序正确运行所依赖的信息集合——相关寄存器

 

4、现场的两个处理过程

(1)现场保护——进入中断服务程序之前,入栈

(2)现场恢复——退出中断服务程序后,出栈

 

2.3.3 中断响应的实质

1、交换指令的执行地址

2、交换CPU的态

现场保护和恢复;进入中断程序传递参数,以及中断程序返回一些参数

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值