操作系统原理,进程
一:操作系统原理
1, 操作系统的主要功能:
一:将计算机复杂的硬件封装成一个个简单的接口,提供给应用程序或者客户使用
二:将应用程序对硬件资源的竞争请求变得有序化
2,计算机的发展情况:
第一代计算机:真空管和穿孔卡片
特点:没有操作系统的概念
所有的程序设计都是直接操作硬件
优点:程序员在申请的时间内可以独享整个资源,可以即使的调试自己的程序(有bug可以立即处理)
缺点;浪费计算机资源,一个时间段内只有一个人使用
注意:同一时刻只有一个程序在内存中,被cpu调用执行。串行
第二代计算机:晶体管和批处理系统
特点:有了操作系统的概念(批处理系统)
第二代如何解决第一代的问题和缺点:
1,把一堆人的输入攒成一大波人的输入
2,然后顺序计算(这是有问题的,但是第二代计算机也没有解决)
3,把一大堆的输出攒成一大波输出
优点:批处理,节省机时
缺点:
1,整个流程需要人参与控制,将磁带搬来搬去
2,计算的过程仍然是顺序计算——》串行
3,程序员原来独享一段时间的计算机,现在必须被统一规划到一批作业中,等待结果和重新调试的过程都需要等同批次的其他程序都运作完才可以(这极大的影响了程序开发的效率,无法即使调试程序)
第三代计算机:集成电路芯片和多道程序设计
多道技术:cpu在执行一个任务的过程中,若需要操作硬盘,则发送操作硬盘的指令,指令一旦发出,硬盘上的机械手 臂滑动读取数据到内存中,这一段时间,cpu需要等待,时间可能很短,但对于cpu来说已经很长很长,长到 可以让cpu做很多其他的任务,如果我们让cpu在这段时间内切换到去做其他的任务,这样cpu不就充分利用了 吗。这正是多道技术产生的技术背景
现代计算机或者网络都是多用户的,多个用户不仅共享硬件,而且共享文件,数据库等信息,共享意味着冲突和无序。
操作系统主要使用来
1.记录哪个程序使用什么资源
2.对资源请求进行分配
3.为不同的程序和用户调解互相冲突的资源请求。
我们可将上述操作系统的功能总结为:处理来自多个程序发起的多个(多个即多路)共享(共享即复用)资源的请求,简称多路复用
多路复用有两种实现方式
1.时间上的复用
当一个资源在时间上复用时,不同的程序或用户轮流使用它,第一个程序获取该资源使用结束后,在轮到第二个。。。第三个。。。
例如:只有一个cpu,多个程序需要在该cpu上运行,操作系统先把cpu分给第一个程序,在这个程序运行的足够长的时间(时间长短由操作系统的算法说了算)或者遇到了I/O阻塞,操作系统则把cpu分配给下一个程序,以此类推,直到第一个程序重新被分配到了cpu然后再次运行,由于cpu的切换速度很快,给用户的感觉就是这些程序是同时运行的,或者说是并发的,或者说是伪并行的。至于资源如何实现时间复用,或者说谁应该是下一个要运行的程序,以及一个任务需要运行多长时间,这些都是操作系统的工作。
2.空间上的复用
每个客户都获取了一个大的资源中的一小部分资源,从而减少了排队等待资源的时间。
例如:多个运行的程序同时进入内存,硬件层面提供保护机制来确保各自的内存是分割开的,且由操作系统控制,这比一个程序独占内存一个一个排队进入内存效率要高的多。
有关空间复用的其他资源还有磁盘,在许多系统中,一个磁盘同时为许多用户保存文件。分配磁盘空间并且记录谁正在使用哪个磁盘块是操作系统资源管理的典型任务。
这两种方式合起来便是多道技术
1,串行:
一个任务完完整整的运行完毕后,才能运行下一个任务
2,并发:
看起来多个任务是同时运行的即可,单核也可以实现并发
3 ,并行:
真正意义上的多个任务的同时运行,只有多核才实现
4 ,cpu的功能:
是用来做计算的cpu是无法执行IO操作的,一旦遇到io操作,应该让cpu去执行别的任务
4,多道技术
1,空间上的复用-----》多个进程共用一个内存
2,时间上的复用-----》多个进程复用同一个cpu的时间
cpu遇到io切换:可以提升效率
一个进程占用cpu时间过长也会切走:为了实现并发效果不得已而为之
二:进程
1,进程介绍
进程指的就是一个正在运行的程序,或者说程序的运行过程,即进程是一个抽象的概念
进程是起源于操作系统的,是操作系统最核心的概念
操作系统所有其他的概念都是围绕进程展开的
2,进程主要是用来实现并发效果的
3,开启进程的两种方式