操作系统概述和进程管理

前言:

来源于b站蛋黄派的大师兄,视频知识点总结

操作系统的发展

无操作系统:那时候机器代替手工,纸带打孔

单道批处理系统:I/O交互,CPU空闲(这时候我们开始想办法提高CPU利用率,因为CPU是告诉设备,I/O是低速设备.只能不停的轮询访问)

多道批处理系统:满足基本操作以后再去换下一个进程(小渣男)

实时操作系统:工业和科学的要求,提高及时性,可靠性(大渣男遇到女霸总)

网络操作系统 :建立在操作系统之上,功能分布在互联网上,负载均衡化

分布式操作系统-->个人操作系统 win7/10等等

小渣男有三个女朋友,他今天陪1号,明天陪2号,后天陪三号

大渣男有30个女朋友:他把30个女朋友同时约到酒店喝喝茶,他以特别快的时间访问30个女朋友,让30位女朋友感觉他全天都在陪自己.但是其中有一位女霸总,大渣男为了花女霸总的钱,所以女霸总有要求的时候,大渣男就要立马响应,要不然他就要从汤臣一品滚出去了.(用类比的手法描述一些陌生的概念,可以让没有基础的快速理解,但是类比的例子不一定是完全贴合知识点逻辑的,有需要仔细研究的还请仔细看书,不要沉迷于我的八卦文字)

操作系统的运行机制

中断------------------------------(一种通知行为)

系统调用---------------------- (一种请求行为) 运行机制

异常-----------------------------(一种处理错误的行为)

操作系统的特征

并发:

真并发:多核之间(时刻来定义的,此时此刻,我为你们服务)

伪并发:同核内部(时间段或时间片来定义的,我在这个时间段内为你们服务)

异步:(必须是在并发的前提下才会异步,一个人怎么异?)

异步具有随机性(假设我们炒菜,三个厨师炒番茄鸡蛋,每个人都有自己的做法,导致结果不一样)

异步产生的原因就是并发+运行机制

虚拟:

cpu复用

虚拟内存

共享(通常用在资源)

互斥访问

同时访问

进程之间的通信

例子(复制,黏贴.下载软件等等)

通信方式(按传输效率高低区分)

低级通信(PV操作)

高级通信(共享存储 消息传递 管道通信)

进程与程序的区别与联系

1)进程是程序及其数据,在计算机上的一次运行活动是一个动态的概念,进程的运行实体是程序,离开程序的进程没有任何的意义。从静态角度看,进程由程序、数据和进程控制块三部分组成的。而程序是一组有序的指令集合,是一种静态的概念

2)进程是程序的一次执行过程,它是动态的创建和消亡的,具有一定的生命周期,是暂时存在的,而程序则是一组代码的集合使用,永久存在的,可长期保存

3)一个进程可以执行一个或几个程序,一个程序也可以构成多个进程。进程可创建进程,而程序不可能形成新的程序

4)进程与程序的组成不同。进程的组成包括程序、数据和PCB

作业和进程的关系

进程是系统资源的使用者。系统的资源大部分都是以进程为单位分配的,而用户使用计算机是为了实现一串相关的任务,通常把用户要求计算机完成的这一串任务称为作业

进程同步互斥的区别和联系

并发进程的执行会产生相互制约的关系,一种是进程之间竞争,使用临界资源,只能让他们逐个使用。这种现象称为互斥,是一种竞争关系,另一种是进程之间协同完成任务,在关键点上等待另一个进程发来的消息,以便协同一致,是一种协作关系

作业和进程的关系

进程是系统资源的使用者。系统的资源大部分都是以进程为单位分配的,而用户使用计算机是为了实现遗传相关的任务,通常把用户要求计算机完成的这一串任务称为作业

进程同步互斥的区别和联系

并发进程的执行会产生相互制约的关系,一种是进程之间竞争,使用临界资源,只能让他们逐个使用。这种现象称为互斥,是一种竞争关系,另一种是进程之间协同完成任务,在关键点上等待另一个进程发来的消息,以便协同一致,是一种协作关系

死锁和饥饿

具有等待队列的信号量的实现可能导致这样的情况,两个或多个进程无限地等待一个事件,该事件只能由这些等待进程之一来产生。这里的事件是V操作的执行 ,出现这样的状态,这些进程称为死锁.

为什么会产生死锁?产生死锁有什么条件?

由于系统中存在一些不可剥夺资源,当两个或两个以上的进程占有自自身的资源,并请求对方的资源时,会导致每个进程都无法向前推进,这就是死锁。产生死锁的必要条件有四个,分别是呼哧条件、不剥夺条件、请求并保持条件和循环等待条件

解决死锁的方法

预防死锁就是破坏上面说的四个条件,避免死锁,就是安全状态和银行家算法检测,死锁就是利用死锁定理化简资源分配图以检测思索的存在,解除死锁资源剥夺法,撤销进程法,进程回退法.

与死锁相关的另一个问题是无限期阻塞或饥饿,进程在信号量内无穷等待的情况

产生饥饿的主要原因是在一个动态系统中,对于每位系统资源,操作系统需要确定一个分配策略,当多个进程同时申请某位资源分配策略,确定资源分配给进程的次序。有时资源分配策略可能是不公平的,既不能保证等待时间上界的存在。在这种情况下,即使系统没有发生死锁,某些进程也可能会长时间等待。当等待时间给进程推进和响应带来明显影响时,称发生了进程饥饿,当饥饿到一定程度。进程所赋予的任务,即使完成也不再具有实际意义,称该进程被饿死.

饥饿并不代表系统一定会死锁,但至少有一个进程的执行被无限期推迟。饥饿与死锁的主要差别如下

进入饥饿状态的进程可以只有一个,而因循环等待条件而进入思索状态的进程却必须大于等于两个

处于饥饿状态的进程,可以是一个就绪进程,如静态优先权调度算法时的的优先权进程,而处于死锁状态的进程则必定是阻塞进程.

银行家算法(著名的避免死锁的算法)

银行家算法的主要思想是避免系统进入不安全状态。在每次进行资源分配时,他首先检查系统是否有足够的资源满足要求。若有,则先进行分配,并对分配后的新状态进行安全性检查,若新状态安全则分配上述资源,否则拒绝分配上述资源,这样他保证系统始终处于安全状态,从而避免了死锁现象的发生.

展开阅读全文

页面更新:2024-04-26

标签:死锁   进程   操作系统   作业   饥饿   算法   分配   女朋友   状态   条件   关系   通信   程序   系统   资源   科技

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top