计算机中的操作系统

计算机的硬件的能力是有限的,但是人们想将计算机中硬件的所有潜能发挥;

作为计算机的软件操作系统,它的一个功能是提供抽象的接口,另一个主要功能是管理硬件资源;

1,不要让CPU打盹

(1)多任务系统

操作系统接管了所有的硬件资源,并且本身运行在一个受硬件保护的级别;

所有的应用程序都以进程的方式运行在比操作系统权限更低的级别;

每个进程都有自己独立的地址空间,使进程之间的地址空间相互隔离;

(2)抢占式分配CPU

CPU由操作系统统一进行分配,每个进程根据进程优先级的高低都有机会得到CPU;

但是,如果运行时间超出了一定的时间,操作系统会暂停该进程,将CPU资源分配给其他等待的进程,这种CPU的分配方式称为抢占式;

操作系统可以强制剥夺CPU资源并且分配给它认为目前最需要的进程;

如果操作系统分配给每个进程的时间都很短,即CPU在多个进程间快速地切换,从而造成了很多进程都在同时运行的假象。

2,设备驱动

对于操作系统上面的运行库和应用程序来说,它们希望看到的是一个统一的硬件访问模式;

如:开发应用程序时,读写硬件端口,处理硬件中断等事情,都由操作系统来实现。

(1)定义:是由操作系统中的硬件驱动程序来完成,驱动程序可以看做是操作系统的一部分;

它往往跟操作系统内核一起运行在特权级,但它又与操作系统内核之间有一定的独立性,是的驱动程序有比较好的灵活性。

(2)操作系统不可能为每个硬件设备开发一个驱动程序

因为,PC硬件多如牛毛,这些驱动程序的开发工作通常由硬件生产厂商完成;

只是操作系统开发者为厂商提供了一系列接口和框架,使的按照接口和框架开发的驱动程序可以在操作系统上使用。

(3)以读取文件为例:

操作系统中的文件系统保存了文件的存储结构,负责维护这些数据结构并且保证磁盘中的扇区能够有效的组织和利用;

在操作系统中,要读取文件时,使用一个read的系统调用实现;

文件系统收到read请求后,判断出文件在磁盘中的位置;

然后,文件系统就向硬盘驱动发出读取请求,磁盘驱动程序收到请求以后就向硬盘发出I/O命令;

向硬件发送I/O命令的方式有很多种,其中最为常见的一种就是通过读写I/O端口寄存器来实现;

例如,在x86平台上,有多个硬件端口寄存器,不同的硬件被分配到了不同的I/O端口地址,CPU提供了两条专门的指令in和out来实现对硬件端口的读写。

3,内存不够怎么办?

操作系统的多任务功能使得CPU能够在多个进程之间很好的共享;

操作系统的I/O抽象模型也很好的实现了I/O设备的共享和抽象。

为更有效的利用硬件资源,同时运行多个程序,此时CPU的利用率将会提高,

那么,很明显的一个问题是,如何将计算机上的有限的物理内存分配给多个程序使用?

(1)内存分配策略的问题:

解决以下三个问题的思路:

增加中间层,即使用一种间接的地址访问方法,此时我们就想到将程序给出的地址看作是一种虚拟地址,

然后,通过某些映射,将虚拟地址转换成实际的物理地址。(保证程序的物理地址不重叠)

1)地址空间不隔离

因为,所有的程序都直接访问物理地址,程序所使用的内存空间不是相互隔离的;

此时,出现存储器,管理用户程序运行时的执行环境,用户想象自己有一个独立的地址空间;

地址空间:

a)虚拟地址空间:指虚拟的,人们想象出来的地址空间,其实它并不存在,

每个进程都有自己独立的虚拟空间,而且每个进程只能访问自己的地址空间,

这样就有效地做到了进程的隔离。

b)物理地址空间:是实实在在存在的,存在于计算机中,而且对于每一台计算机来说只是唯一的一个,

你可以把物理地址想象成物理内存;

例如:32位机,有32条地址线,那么物理空间为4GB,

但是若计算机上只装了512MB的内存,那么物理地址的前部分是有效的,后面的部分是无效的。

2)内存使用率低

由于内存空间的有限,使的程序执行时不能将所有的全部装入内存,若那样做了则需要大量的数据换出换入,导致效率低下。

a)分段:能解决问题1和3,问题2不能解决,因为,它还是以整个程序为单位,在内存中进行地址映射。

假设程序所占用的虚拟空间,然后从实际的物理内存中分配一个相同大小的物理地址空间;

通过软件来设置,虚拟空间与物理空间的地址映射;

如:操作系统来设置这个映射函数,实际的地址转换由硬件完成;

(CPU会将虚拟地址转换成实际的物理地址)

b)分页:根据程序的局部性原理,将程序分成固定大小的页(页的大小由硬件决定)。

涉及到的名词:虚拟页,物理页,磁盘页

3)程序运行的地址不确定

程序的重定位问题。(程序装入内存的位置不确定)

计算机的硬件的能力是有限的,但是人们想将计算机中硬件的所有潜能发挥;

作为计算机的软件操作系统,它的一个功能是提供抽象的接口,另一个主要功能是管理硬件资源;

1,不要让CPU打盹

(1)多任务系统

操作系统接管了所有的硬件资源,并且本身运行在一个受硬件保护的级别;

所有的应用程序都以进程的方式运行在比操作系统权限更低的级别;

每个进程都有自己独立的地址空间,使进程之间的地址空间相互隔离;

(2)抢占式分配CPU

CPU由操作系统统一进行分配,每个进程根据进程优先级的高低都有机会得到CPU;

但是,如果运行时间超出了一定的时间,操作系统会暂停该进程,将CPU资源分配给其他等待的进程,这种CPU的分配方式称为抢占式;

操作系统可以强制剥夺CPU资源并且分配给它认为目前最需要的进程;

如果操作系统分配给每个进程的时间都很短,即CPU在多个进程间快速地切换,从而造成了很多进程都在同时运行的假象。

2,设备驱动

对于操作系统上面的运行库和应用程序来说,它们希望看到的是一个统一的硬件访问模式;

如:开发应用程序时,读写硬件端口,处理硬件中断等事情,都由操作系统来实现。

(1)定义:是由操作系统中的硬件驱动程序来完成,驱动程序可以看做是操作系统的一部分;

它往往跟操作系统内核一起运行在特权级,但它又与操作系统内核之间有一定的独立性,是的驱动程序有比较好的灵活性。

(2)操作系统不可能为每个硬件设备开发一个驱动程序

因为,PC硬件多如牛毛,这些驱动程序的开发工作通常由硬件生产厂商完成;

只是操作系统开发者为厂商提供了一系列接口和框架,使的按照接口和框架开发的驱动程序可以在操作系统上使用。

(3)以读取文件为例:

操作系统中的文件系统保存了文件的存储结构,负责维护这些数据结构并且保证磁盘中的扇区能够有效的组织和利用;

在操作系统中,要读取文件时,使用一个read的系统调用实现;

文件系统收到read请求后,判断出文件在磁盘中的位置;

然后,文件系统就向硬盘驱动发出读取请求,磁盘驱动程序收到请求以后就向硬盘发出I/O命令;

向硬件发送I/O命令的方式有很多种,其中最为常见的一种就是通过读写I/O端口寄存器来实现;

例如,在x86平台上,有多个硬件端口寄存器,不同的硬件被分配到了不同的I/O端口地址,CPU提供了两条专门的指令in和out来实现对硬件端口的读写。

3,内存不够怎么办?

操作系统的多任务功能使得CPU能够在多个进程之间很好的共享;

操作系统的I/O抽象模型也很好的实现了I/O设备的共享和抽象。

为更有效的利用硬件资源,同时运行多个程序,此时CPU的利用率将会提高,

那么,很明显的一个问题是,如何将计算机上的有限的物理内存分配给多个程序使用?

(1)内存分配策略的问题:

解决以下三个问题的思路:

增加中间层,即使用一种间接的地址访问方法,此时我们就想到将程序给出的地址看作是一种虚拟地址,

然后,通过某些映射,将虚拟地址转换成实际的物理地址。(保证程序的物理地址不重叠)

1)地址空间不隔离

因为,所有的程序都直接访问物理地址,程序所使用的内存空间不是相互隔离的;

此时,出现存储器,管理用户程序运行时的执行环境,用户想象自己有一个独立的地址空间;

地址空间:

a)虚拟地址空间:指虚拟的,人们想象出来的地址空间,其实它并不存在,

每个进程都有自己独立的虚拟空间,而且每个进程只能访问自己的地址空间,

这样就有效地做到了进程的隔离。

b)物理地址空间:是实实在在存在的,存在于计算机中,而且对于每一台计算机来说只是唯一的一个,

你可以把物理地址想象成物理内存;

例如:32位机,有32条地址线,那么物理空间为4GB,

但是若计算机上只装了512MB的内存,那么物理地址的前部分是有效的,后面的部分是无效的。

2)内存使用率低

由于内存空间的有限,使的程序执行时不能将所有的全部装入内存,若那样做了则需要大量的数据换出换入,导致效率低下。

a)分段:能解决问题1和3,问题2不能解决,因为,它还是以整个程序为单位,在内存中进行地址映射。

假设程序所占用的虚拟空间,然后从实际的物理内存中分配一个相同大小的物理地址空间;

通过软件来设置,虚拟空间与物理空间的地址映射;

如:操作系统来设置这个映射函数,实际的地址转换由硬件完成;

(CPU会将虚拟地址转换成实际的物理地址)

b)分页:根据程序的局部性原理,将程序分成固定大小的页(页的大小由硬件决定)。

涉及到的名词:虚拟页,物理页,磁盘页

3)程序运行的地址不确定

程序的重定位问题。(程序装入内存的位置不确定)


相关文章

  • 铁路信号计算机联锁系统本科毕业论文
  • 毕业论文 题 目 铁路信号计算机联锁系统 铁路信号计算机联锁效系统 摘 要 计算机联锁系统是实现铁路现代化和自动化的基础设施之一,是一种高效.安全的车站联锁设备,是提高车站通过能力的基础.同时,计算机联锁系统还具有故障-安全性能,与电气联锁 ...查看


  • 嵌入式系统的定义和发展简史
  • 一.现代计算机的技术发展史 1.始于微型机时代的嵌入式应用 电子数字计算机诞生于1946年,在其后漫长的历史进程中,计算机始终是供养在特别的机房中,实现数值计算的大型昂贵设备.直到20世纪70年代,微处理器的出现,计算机才出现了历史性的变化 ...查看


  • 东北大学信息学院导师
  • 单位名称电力系统与电力传动研 究所电力系统与电力传动研 究所电力系统与电力传动研 究所电气自动化研究所电气自动化研究所电气自动化研究所电气自动化研究所电气自动化研究所电气自动化研究所电气自动化研究所电子科学与技术研究所电子科学与技术研究所 ...查看


  • 计算机控制技术的发展与应用(合肥学院)
  • HEFEI UNIVERSITY 计算机控制在生产工业中的应用 题 目: 系 别: 电子信息与电气工程系 专业(班级): 自动化 完成时间: 2014-03-20 目录 摘要 ................................ ...查看


  • 计算机常用术语 1
  • ENIAC --电子数字积分计算机 CAI --计算机辅助教学 CAD --计算机辅助设计 CAM --计算机辅助制造 CAT --计算机辅助测试 ASCII 码--美国标准信息交换代码,基本集中包括128个字符与控制符 计算机病毒--具有 ...查看


  • 大学计算机基础课后题答案
  • 习 题 一 一.选择题 1. 1946年2月,世界上第一台计算机ENIAC 的全称是 D . A) 通用模拟电子计算机 B) 巨型计算机 D) 电子数值积分计算机 B) 存储程序 D) 数据库系统 B) 辅助设计 D) 人工智能 C) 通用 ...查看


  • 未来计算机发展方向
  • 姓名:刘博文 班级: 学号:四川城市学院 2014级软件技术(1)班 2014034599 2015/11/26/ 未来操作系统的发展方向 未来操作系统的发展方向 摘要 21世纪是信息的时代, 随着科学技术的不断发展与创新, 计算机得到了广 ...查看


  • 计算机科学概论
  • 计算机科学概论 魏子翔 学号:[1**********]23 摘要:通过对计算机科学概论的学习,对计算机科学与技术这一专业有了一定的认识. 本文主要写了对计算机科学与技术这一专业的认识:对算法的认识以及对计算机硬件系统的工作原理的认识与了解 ...查看


  • 1.1 水电站计算机监控系统的发展概况
  • 第一部分 基 础 理 论 水电站计算机监控技术是一门综合性很强的科学,它是水电站硬件技术.计算机技术.通信技术.数据库技术.网络技术和自动化监控技术等多种技术的有机融合.要深入了解水电站计算机监控技术,必须先了解水电站监控系统的各种基础装置 ...查看


  • 涉密计算机安全策略文件
  • 厦门冠宇科技股份有限公司 涉密计算机及信息系统安全策略文件 1 概述 涉密计算机及信息系统安全策略文件属于顶层的管理文档,是计算机系统与信息安全保障工作的出发点和核心,是公司计算机与信息系统安全管理和技术措施实施的指导性文件.涉密计算机及信 ...查看


热门内容