欢迎光临散文网 会员登陆 & 注册

操作系统——进程管理

2021-12-13 00:58 作者:艾枫start  | 我要投稿

1 进程?

describe:

进程的状态:

noting


进程控制:

原语的作用

noting;


阻塞原语和唤醒原语

切换原语:

进程通信

线程:

多对多

处理及调度

各个调度之间的关系和区别

进程调度时机切换

进程调度算法(低级调度)

FCFS:按先后顺序排列,时间轴画出来计算 周转时间,等待时间,平均周转时间,带权周转时间(除法),平均带权周转时间;若有i/o操作则等待时间=周转时间-实际run-i/o操作

noting:


SJF短作业优先(shortest job first)选择当前已经到达的作业中运行时间最短的

非抢占式:

抢占式:和上面不同的是,(要运行进程必须等上一个进程结束再比,这个是,来一个进程比一次)

 

然后就是三个抢占式或者剥夺式的算法

时间片轮转 RR 优先级调度 还有 多级反馈队列

共通点就是 会根据一个标准也就是他们的区别 来选择调度哪一个进程的问题

RR 1 给当前到达的进程分别分配一个时间片运行

      2注意当时间片耗尽时,是否要插在新来的进程的后面

优先级调度  :设置一个变量 优先级,优先级高的抢占cpu运行

     1 当每次有新的进程到达时,都要与当前运行的进程进行优先级的比较,低下高上

     2 多个,那就一起比。

多级队列反馈: 

              信号量机制

记录型信号量


1 cpu随机的为各个进程服务

2 打印机使用的过程中是需要占用资源,而cpu是可以离开

3 当已有的资源全部分配完毕,再次访问该资源,则Wait(阻塞)在队列中

4 当使用完打印机资源,则增加信号量,唤醒阻塞在队列中的进程

5 当s.value =-1 则有一个进程等待 以此类推

连起来了,,,

linking记录型信号量

explainatin:

1 若P1先运行,P2后运行

 则代2一定运行在代4之前

2 反之

则 P2阻塞到等待队列去 s=-1, p1完成后,s——>0 唤醒阻塞队列中的进程

则 保证代2一定运行在代4之前


信号量机制实现前驱关系


生产者——消费者问题

ex: 当先上锁,生产者进行P操作,发现满,一直阻塞在P里,然后消费者无法进行临界区的访问,结果也阻塞

多生产者多消费者

生产者的动作:                                                               消费者动作    

1 生产产品                                                                                 1检查产品数量

2 检查缓冲区的是否为空                                                            3 拿走缓冲区的产品

4把产品放入缓冲区                                                                    5更新缓冲区

6更新产品数量                                                                           6 吃掉产品

不用设置互斥信号量的原因

吸烟者问题


ex:他的这个分析 十分清晰,首先 关注有几对同步关系,设置相应的信号量

                                                1——>多

                                                多 ——>1


读者写者问题

ex: 读进程优先,写进程会饿死

解决

ex:

1 增加一个信号量W

2在写进程前后添加p(w) v(w)实现写

3 在读进程前后添加p(w) v(w)实现写进程优先

毒邪毒(读写读)

写进程会阻塞在p(rw) 处等待读进程v(rw)

哲学家进餐:


0 生产和 消费之前,我都得检查一下 产品的数量 full or 0 都偶得阻塞 等待 signal(full) 以及 signal(empty)

1 并发生产,编译器函数阻塞,实现有先后顺序

2两个消费者 ,阻塞在wait(empty),

if(我生产的是第一产品 那么我得唤醒一下阻塞的empty)

同样的

if(我消费的是第一个产品,那么我得唤醒一下阻塞的full)


银行家算法


操作系统——进程管理的评论 (共 条)

分享到微博请遵守国家法律