操作系统学习记录20220331

2.1.4进程通信

1.进程1和进程2有各自的内存空间,且不能相互访问;但是进程间能够通信。

2.共享存储是第一种进程间通信的方式,特点是不能同时访问,即互斥;

3.共享存储分为低级的数据库共享方式和高级的存储区共享方式。第一种方式的限制较多。

4.管道通信方式是一种进程间通信的方式,特点是不能同时访问,半双工通信,全双工通信需要两个管道。管道实质是一块共享的内存缓冲区。

5.管道通信时,读数据就一定要读完,写数据就一定要写满。且读取时只能同时一个进程读取。

6.第三种进程间通信方式是格式化消息,结构为消息头和消息体,类似于IP报文。发送时使用发送原语,接收时使用接收原语。细化又分为两种通信方式,第一种是直接发送到目标进程缓存队列,第二种是发送到中间邮箱等待读取。中间邮箱由操作系统管理。

2.1.5 线程概念与多线程模型

1.线程存在于进程中,旨在为增加并发度,线程是程序执行流的最小单位/CPU调度的最小单位。

2.进程间切换的系统开销大于线程间切换的系统开销,所有同一进程内线程切换的开销低。

3.每个线程可以占用不同的CPU,拥有类似进程的PCB的TCB,基本态。

4.同一进程中的线程通信不需要操作系统干涉。

5.线程的实现方式-用户级线程:由用户程序的线程库操作,对操作系统是透明的。

6.线程的实现方式-内核级线程:由操作系统在核心态下进行操作,对用户是透明的。内核级线程是CPU调度的最小单位,而非用户级线程。

7.多线程模型有三种:多用户级线程对应单内核级线程、多用户级线程对应多内核级线程、利用线程库进行多对多线程映射。第一种的优点是系统资源占用少、开销低,缺点是容错低,一旦某一线程阻塞导致整个进程阻塞;第二种的优点是容错高、并发程度高,缺点是资源占用多。

2.2.1 处理机调度

1.定义:按某种规则安排资源

2.进程调度分为高级调度(作业)、中级调度(内存)、低级调度(进程)。高级调度是将进程从外存调进内存,并创建PCB去到就绪态等待;中级调度是在比如内存资源不足的情况下,将处于就绪态或者阻塞态的进程调处到外存中挂起,等待调回,但是其PCB留在内存中;低级调度是数十毫秒发生一次的调,将不同的内存按时分复用的形式不断调入掉出CPU处理机,即从就绪态到运行态。

3.五状态是:创建态、就绪态、运行态、阻塞态、终止态。而中级调度引入了挂起态,分为就绪态到挂起态和阻塞态到挂起态。

2.2.2 进程调度的时机、切换与过程

1.切换方式分为抢占式和非抢占式。分别对应被动放弃CPU资源和主动放弃CPU资源。

2.抢占式:如更高优先级进程需要处理,所分时间片耗尽;非抢占式:主动结束CPU资源使用、异常终止、因需求而进入阻塞态。

3.在三种情况下不能进行进程调度:系统进行原子操作中;系统进行中断操作中;系统操作内核程序临界区。比如就绪态队列就是内核程序临界区,操作该队列的过程会上锁,导致就绪态与运行态之间无法切换。

4.进程调度越频繁,资源浪费越大。

2.2.3 调度算法的评价指标

1.CPU利用率=CPU忙碌时间/CPU总时间;

2.系统吞吐量是指单位时间处理作业的数量;

3.响应时间是指用户输入命令到系统反馈到用户的时间;

4.周转时间是指作业从高级调度开始调度到作业被处理完成的时间。包括了处理时间和等待时间。带权周转时间就是周转时间/处理时间,因此带权周转时间越小越好。

2.2.4 调度算法思想(一)

1.先来先服务算法,算法思想顾名思义。优点是公平简单,属于非抢占式算法。考虑排队上厕所模型。

2.短作业优先算法,算法思想顾名思义。根据运行时间来做优先级排序,属于非抢占式算法。考虑排队买奶茶做完插队模型。

3.最短剩余时间算法,算法顾名思义。每当一个进程进入就绪态的时候,就计算当前正在执行的进程的剩余时间与新进程的剩余时间比较,选择当前处理时间剩余最小的进程进行执行,属于抢占式算法。考虑排队买奶茶没做完就插队模型。

4.高响应比算法,算法思想顾名思义。响应比高的先执行,属于非抢占式。响应比由(等待时间+运行所需时间)/运行所需时间得出。可用于作业调度和进程调度。

2.2.5调度算法思想(二)

1.时间片轮转调度算法思想,按进入就绪队列的顺序进行执行,但是每个进程只执行一个时间段,如果这个时间段都用完了还没完成,就重新放到就绪队列的队尾重新排队。如果适用于进程调度(时间片嘛),属于抢占式算法,由时钟控制。优点是比较公平、响应快、适用于分时操作系统。缺点是时钟反复控制切换导致开销比较大。

2.优先级调度算法思想,按照进程的优先级进行调度,用于作业/进程调度,分为抢占式和非抢占式。非抢占式情况下,当进程主动放弃处理机之后,按其他进程按优先级上处理机。优点是适用于实时操作系统,比较灵活;缺点是可能造成低优先级的进程长时间执行不了。

3.进程的优先级,一般是系统进程>用户进程、前台进程>后台进程、I/O进程繁忙>I/O进程空闲

4.多级反馈队列调度算法,两个思想,第一个是所有新进程都能被放到最高优先级练手,如果运行时间短就直接执行完了,如果运行时间长就会被降级到下一个队列队尾;第二个是越是运行时间长的进程优先级越可能被逐步降低优先级,同时因为重新确定执行进程时也是按照优先级从高到低索引的,所以运行时间长的进程越难有出头之日,因此在大量高优先级运行时间短的进程情况下,可能会导致饥饿。(交互式系统比如UNIX就是这种算法)

2.2.6 进程同步与互斥

1.进程异步:处理机中正在并发执行的进程,可能会无序地占用相同的系统资源进而导致错误。

2.进程同步:规定处理机中的各个进程按照某种次序进行系统资源的使用。

3.进程互斥:各个进程不能并发(微观交替)使用某系统资源。进程互斥分为进入区上锁,临界区使用,退出区解锁,剩余区善后处理四个步骤。但是对于某互斥资源,能使用它的进程必须里脊使用;使用它的进程不能长期占用;等待的进程在等待期间应该释放对CPU处理机的占用;

注:未阅读进程互斥的实现方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值