码迷,mamicode.com
首页 > 其他好文 > 详细

操作系统(os)总结----大学的课件(参考书:王爽的 8086汇编)

时间:2016-05-27 12:19:27      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:

1. 我们先说一下操作系统的发展史,这样更有利于我们对这个技术脉络的把

├——手工打孔 插卡
├——单道批处理├—- 联机处理(可以批量处理作业但是一次只能处理一个作业)
├ ├──– 脱机处理(缓和人机矛盾,使cpu和输入输入设备并行处理)
├——多道批处理
├——分时系统
├——实时系统

结构发展经历下面四个阶段:
├—— 无结构os结构(只是实现了功能)
├—— 模块化os结构(不利于数据共享,通讯)
├—— 分层式os结构(扩展度性不好)
├—— 微内核os结构(采用了面向对象的设计方法,现在用的系统基本都是微内核的)
顺便说一下,我们经常提到的内核层开发,和用户层开发,所谓的内核层开发,就是
使用操作系统内核开放的接口,编程。用户层开发就是使用普通的接口编程,比如windows
的Win32 API 就是应用层开发,专门开发我们使用的软件。

在我们学习文章的时候,经典的衔接段落经常起着承上启下的作用,os就是这样的
控制着下面的硬件,并且为上层的应用软件提供接口,图形化等服务。、

技术分享
技术分享
技术分享

2. 我们先说呈上的部分也就是大家经常使用的,操作系统让我们看到的

文件系统,提供的上层操作就是我们经常使用的目录 文件
设备管理,平常使用的usb设备,键盘 鼠标 显示器 打印机等

当然这俩个部分,我们看到的内容,应该算是逻辑层面的东西,是操作系统为了更好的服务客户
而设计出来的,毕竟最初的dos系统,就是我们开机看到的黑屏界面只是会显示一些字符仅此而已
操作系统会把逻辑的操作转成具体的对硬件的处理,当然了这些细节都已经隐藏掉了。

3. 呈下部分,就是对硬件的处理了

├—— cpu  就是处理器了,由寄存器 控制器 运算器和元器件通过总线连接起来的中央处理器
├—— 内存 这个大家应该很熟悉的,手机也有就是的RAM
├—— 设备 键盘 鼠标 显示器 打印机 等
├—— 文件:磁盘 软盘 u盘等

以上基本就是OS所做的主要管理工作,通过对这些硬件的管理,我觉的其实就是对这些硬件的i/o操作
而已,下面我们就看看操作系统是如何对他们进行读写,然后让整个系统为我们服务。

3.1 cpu 我们都知道,就是用来处理指令的,指令来自我们写的程序,那我们写的程序是怎么进入到内存,

再进入到cpu呢,然后处理的呢,程序大体处理流程如下:

编写       编译           链接                  装入内存            创建pcb初始化,保存程序在内存中的地址

—–> 源程序——> 目标文件—-> 二进制可执行文件———> 创建进程————————————-
分配资源,修改pcb相应的值,并且把pcb加入到就绪队列 通过进程调度算法得到cpu
—————————————————>等待cpu的执行————————>程序开始执行

以上就是我理解的程序处理流程,如果有问题,请大家及时指出谢谢。从这里可以处理cpu就是用来处理进程的一系列操作,
进程的创建,销毁 状态的转换 进程之间的通讯 同步 异步 并发 以及进程的调度。详细一点的如下图所示:
技术分享
技术分享
技术分享
技术分享
技术分享
技术分享
技术分享
技术分享
技术分享
技术分享
技术分享
技术分享
技术分享

3.2 内存

      内存的主要作用就是给cpu提供数据,既然是内存那就避免不免的流程: 分配 回收
  我们所有的操作也都时围绕这俩点进行的,说道内存的分配那就肯定分为俩中情况: 连续  非连续 类似于数据结构
  的线性和非线性。
  连续分配内存就是很简单了,就是分配连续的内存,但是分配多少呢,这就是一个问题了,所以就分为固定内存的分配
  和动态内存的分配(根据程序,数据 大小),并且采用相关的分配算法。缺点:内存碎片化严重,所以我们聪明的程序
  员,又想出了非连续内存分配的方法,来弥补缺点,毕竟内存条很贵,并且容量有限。

  离散分配(非连续): 就像书一样先把内存按照一定的大小分页,系统存在一张总的分页表,就跟我们平常见到的书目录是一样
  的,我们可以在程序装入内存的时候,把空合适的页面集合找出来然后,把程序存储进去。但是因为页比较小承载的数据有限
  但是我们的程序大小是不确定的,这样我们编写汇编代码对地址的处理就会比较麻烦,这个时候就需要分段了,就跟我们学习
  文章一样,文章分为不同的段落,有不同的作用,我们就把内存分段,按照需求分成不同的段。但是因为我们有的程序特别的大
  内存不够,这个时候产生了虚拟内存的概念,其实就是用了替换的思想,把当前需要处理的指令先存入内存,当把内存中的指令
  处理完毕之后,可以把剩下的指令再次调入内存,这样我们就可以用小于程序的内存来运行大于内存的程序,因为我们是内存是以
  段或者页位基础的,所以相应的置换算法就叫做,页面置换算法 ,段置换算法。当然了也可以把段和页结合起来,使用段页式
  内存管理,这样就可以结合俩者的优点。这里写的都是很粗略的东西,具体还是要看书。
  知识结构图如下:

技术分享
技术分享
技术分享
技术分享
技术分享
技术分享
技术分享

3.3 设备

设备的管理,发展到现在主要处理分为四步: --- 应用程序的调用
                                                 --- 设备独立性软件
                                                   --- 设备驱动程序
                                                     --- i/o 中断 
  因为我们在编程的时候,读写文件就是通过一些库函数提供的方法,read write 等方法直接使用的,不管我换个操作系统,还是换个
  硬件对于我们编程事没有影响的,这个牛逼的功能就是设备独立性软件提供的,让我们对设备的操作独立于设备硬件,在这一层会把逻辑
  设备转为物理设备,并且调用设备驱动程序来处理相应的i/o 操作。

  知识结构图如下:

技术分享
技术分享
技术分享
技术分享
技术分享
技术分享
技术分享
技术分享

3.4 文件

      文件的逻辑结构,物理机构

  知识结构图如下:

技术分享
技术分享
技术分享
技术分享
技术分享
技术分享
技术分享

操作系统(os)总结----大学的课件(参考书:王爽的 8086汇编)

标签:

原文地址:http://blog.csdn.net/li740207611/article/details/51489141

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!