Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7419
  • 博文数量: 5
  • 博客积分: 225
  • 博客等级: 二等列兵
  • 技术积分: 70
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-08 08:40
文章分类
文章存档

2010年(5)

我的朋友
最近访客

分类: LINUX

2010-05-08 08:44:43

存储程序概念
CPU和外设的分工和关系
CPU的三种控制结构及其它常用指令:顺序、条件、循环、函数调用,外设控制、赋值拷贝

操作系统的起因、缘由、要解决的问题
计算机有史以来第一次将软件和硬件分离,通过给 CPU不同的程序(存储的指令序列),计算机实现不同的功能,从而使得计算机具备不同的功能(就像同样的人学会不同的技能就可以承担不同的工作),从而计算机具有很好的功能扩展性。早期甚至最早期的计算机都有这样的功能可扩展性。

不同的软件操作硬件,硬件提供的功能对不同的软件来说都是相同的,对他们的操作也是相同的,比如内存的管理、对IO设备的操作和控制,所以可以把这部分公共的操作提取出来,这样不需要每个软件都重复性地开发这些功能。这部分公共的操作相当于把计算机硬件资源做了一次封装,使得软件更方便使用计算机硬件,这部分软件功能放在操作系统软件中,例如DOS操作系统就以函数的形式提供了这些功能供应用软件调用,就像调用公共库函数一样。

如果操作系统仅提供DOS这样的功能,已经具有了很好的功能可扩展性。但是存在一个问题,由于计算机是由CPU、内存和外设组成的,当软件需要从外设读取信息时,不会马上得到信息,而且外设一般都比CPU慢很多,所以需要COU等待很长时间。还有一种等待的请况是等待事件,例如定时器。在等待的过程中,高速的CPU都没活可干,计算机系统中最能干的设备没货可干,资源浪费。因此需要有手段使得在这种情况下使得CPU有活干:让CPU在等待的时间运行其它的软件!当第一个软件等待的事件/信息就绪时,该软件也可以运行。也就是说,计算机系统同时有两个或以上的软件在执行,这就是多进程,多个进程分时段在CPU上执行。多进程不断提高了计算机系统硬件的利用率和系统的性能(吞吐量),而且使得计算机系统同时执行不同功能的软件,功能上的可扩展性更好。

所以计算机系统需要具备此功能:在一个应用软件(进程)因为等待IO不能继续执行时,计算机刮起该进程执行另外一个进程。当第一个进程等待的IO就绪时,计算机可以让其恢复执行OS的历史上的进程切换功能(当然现代OS也有这个功能).。这个功能也不可能由应用软件完成,因为1这是一个公共功能,不应该由每个软件都提供该功能 2 这是在多个进程间分配CPU,肯定是有第三方(非这几个进程)来管理的,因此这部分功能也放在OS中。那么这就是OS的历史上的多道程序功能(当然现代OS也有这个功能).

那么这个功能是如何实现的。这个要从中断说起。前面说到,CPU不能继续等IO,CPU干别的去了。那么当IO OK时, CPU如何知道?硬件的中断机制中断CPU的执行,CPU再将第一个进程恢复执行,要恢复执行,那么CPU 在地一个进程等待IO挂起而执行另外的进程时,CPU需要保存进程的挂起点和其它供回复执行的信息(状态)(进程切换功能),刮起和恢复执行都是OS干的活,不需要也不能由应用软件来提供这个功能,第一个进程的挂起是由OS的syscall完成的,第一个进程的的恢复执行是由中断完成的(对于抢占的情况如此。如果是非抢占(包括分时抢占),那么只能在IO OK后再等到第二个进程syscall等待IO刮起时)。

保护模式:上面描述的OS功能不能被进程所控制破坏,因此在syscall和中断(进入OS)时,这些OS的n内存、设备操作必须不受恶意或者错误的应用程序影响,所以OS的操作和执行是在特权下执行,应用进程在普通模式下执行,后者权限低,无法破坏和控制前者,前者可以控制后者,控制所有计算机硬件资源。这是现代OS得以运行的基本机制


阅读(543) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:云计算分析研究

给主人留下些什么吧!~~