内核态特权态 设备寄存器 数据缓冲区 计算机的心智操作系统之哲学原理 无缓冲的直接数据通道 直接内存访问

 

计算机的心智操作系统之哲学原理
第一章 基础原理篇
指令读取 指令译码 读操作数 指令执行 写结果
中断 操作系统获得控制权的基本保证


内核态:特权态;如果一个程序运行在特权态则该程序就可以访问计算机的任何资源。


用户态:非特权态。
 

参数准备阶段
系统调用识别阶段
系统调用执行阶段


单一的操作系统结构
层次化的操作系统结构

 

4章 进程
流水线、线程、进程:从低到高德三个层次的并发

单一操作员单一控制终端、批处理均存在效率低下的问题,即CPU使用率不高。
为了提高CPU利用率,人们想起将多个程序同时加载到计算机里,并发执行。这些同时
存在于计算机内存的程序就成为进程。进程让用户感觉自己独占CPU。
进程是为了在CPU上实现多道编程而出现的概念。

 

 4.3 多道编程的效率

在忽进程切换需要的系统消耗的情况下

随着进程数量的增加,即随着多道编程的度的增加,CPU的利用率将逐步提升,直到某个临界点时为止。这个临界点就是多道编程的极限。

超过这个极限,多道编程的好处将逐步消失,甚至呈下降趋势。

 

 

 

 

多道编程度数、I/O时间和CPU利用率的关系

 

 

 

 

 

 进程的状态

1、在CPU上执行 

2、不在              :挂起状态

 

挂起原因:

1、主动

在运行过程中执行了某种阻塞操作,如读写磁盘。由于阻塞操作需要等待结果后才能执行,操作系统把这个进程挂起来,让其他进程运转。

2、被动

一个进程执行时间太长了,为了公平,操作系统将其挂起,让其他进程有机会执行。

 

由上,将进程分为3种状态:执行、阻塞、就绪。

 

 

 

进程创立步骤

分配进程控制块
初始化机器存储器
初始化页表
将程序代码从磁盘读进内存
将处理器状态设置为“用户态”
跳转到程序的起始位置(设置程序计数器)

process control block
存放进程的资料
寄存器、程序计数器、状态字、栈指针、优先级、进程ID
、信号、创立时间、所耗CPU时间、当前持有的各种句柄

进程管理的主题:
公平:
效率:
 
 
 

 

 第五篇 I/O原理篇

19 输入输出

19 输入输入

输入输出设备
电气工程师:芯片、布线、能量供应、电机
软件工程师:可接受的命令、能提供的功能、错误处理机制

以设备存储和传输数据的方式来划分
2类
块设备:以数据块为单位存储和传输数据的输入输出设备,如磁盘、光盘、U盘、磁带
字符设备:将数据按照字符(字节)为单位来存放和传输数据的设备,如鼠标、键盘、打印机、网络界面

寻址:
块设备的数据按数据块为单位进行处理,而每块数据块都有一个唯一的磁盘地址,即数据块是可寻址的;
字符设备是不可以寻址。

 

 

 

 

 

 

数据的传输速度

 

输入输出设备:
机械部分 设备的物理硬件部分
电子部分 设备的控制器,也称适配器,任务:
控制设备的物理运行、将序列字位流转化为字节块流、进行纠错操作

设备控制器与CPU之间的数据交互通过设备寄存器进行。
设备寄存器附着在设备控制器上。
通过向这些寄存器进行写入,操作系统可以向设备发出输入输出命令,或把设备关闭或打开。
而通过读取这些寄存器的内容,操作系统可以获得设备的状态信息。

为了提高与CPU交互数据的效率,输入输出设备通常还备有数据缓存区。例如,视频控制器通常带有
自己的视频RAM。CPU通过与视频RAM进行数据交互,就可以传输巨大的数据量。

 

物理I/O模式

物理输入设备模式

1、专有通道I/O
I/O与内存完全脱离的。
每个控制寄存器被赋予一个唯一的I/O端口。这个I/O端口就是一个9位或者16位的一个整数。
这个整数与内存地址没有任何关系。

2、内存映射的I/O
将I/O映射到内存里面,从而使得I/O和内存管理得到统一。
将I/O设备的每个控制寄存器和设备缓冲区寄存器赋予一个唯一的内存地址。
对这些地址的访问,就是对输入输出设备的访问,从逻辑上看就是内存的访问。

 

 

 

 

direct memory access  直接内存访问
让I/O设备与计算机内存直接数据交换


DMA输入输出过程
1、CPU对DMA进行设置,告诉其I/O的起始地址和数据长度;
2、启动DMA过程;
3、DMA进行数据传输;
4、DMA结束后发出中断;
5、CPU响应中断并处理结束事宜。

 

DMA要和CPU竞争内存总线

 

设备驱动程序
直接驱动I/O设备进行输入输出操作的软件
属于与设备控制器直接联系的I/O软件部分

设备控制程序通常由设备制造商提供,但归属于操作系统内核。

1、从上层接收抽象的读写请求
2、确保读写操作被完成
3、初始化设备,开、关设备
4、对设备功能进行管理

 

 

 

 

设备独立的操作系统软件
设备驱动程序并不直接从用户处接受I/O请求,而是通过另外一层中介获得用户请求。
这层介于设备驱动程序与用户程序之间的中介就是设备独立的操作系统软件。

 

1、统一界面

 

 

 

2、缓冲
缓冲是几乎所有I/O设备都需要的一种操作。
缓冲的目的:
1、桥接速度不同的设备,使之可以沟通同步;
2、提供灵活的健壮机制,因为在每个缓冲层都可以进行一些健壮性、可靠性、安全性处理。

1-1:
提高数据传输速度,因为快速设备不必等待慢速设备
1-2:
防止溢出,因为慢速设备来不及处理的数据可以存放在缓冲区而不会丢失

缺点:
降低了数据传输的时效性。
缓冲层处理是需要时间的。如果一个系统的时效性重要,则最好不要用缓冲,而是在
通信双方之间创建一个没有缓冲的直接通道,这样数据从一方发出后,另一方将马上收到。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 





 
 
posted @ 2017-02-25 11:04  papering  阅读(263)  评论(0编辑  收藏  举报